
豆包 Doubao Image API 價格全面解析
利用Gopher協議可以攻擊內網的Redis、Mysql、FastCGI、FTP等,也可以發送GET、POST請求,這可以拓寬SSRF的攻擊面。通過構建特定的網絡請求,可以在內網環境中執行一些特定的操作,例如獲取API Key或進行數據庫探測等。
在進行Gopher協議的安全測試時,通常需要搭建一個測試環境。一般使用兩臺虛擬機,一臺運行CentOS,另一臺運行Ubuntu。CentOS用于發起端口監聽,而Ubuntu用于發起請求。
首先,需要確保CentOS上安裝了nc
,如果沒有可以通過以下命令安裝:
apt-get install -y nc
接著,查看CentOS的IP地址,并確保Ubuntu可以ping通。然后啟動監聽,監聽特定端口,例如9527端口:
nc -lp 9527
在Ubuntu上,通過curl命令發起Gopher請求:
curl gopher://:9527/_abcd
在CentOS端,會收到abcd的響應,因為Gopher協議會吞掉第一個字符,所以需要在請求前添加一個下劃線:
如果請求不成功,可能是由于防火墻策略的問題。可以通過以下命令查看并關閉REJECT規則:
iptables -L INPUT --line-numbers
iptables -D INPUT 11
其中11為REJECT的ID。
使用Gopher協議進行GET請求需要特定的環境配置。一般情況下,CentOS發起端口監聽,Ubuntu發起請求,前提是兩者可以互相ping通,并關閉防火墻中的ICMP協議。
在CentOS上,開啟Docker并啟動LAMP環境(設置根目錄為app):
docker run -d --name=lamp -p 80:80 -p 3306:3306 -v /app:/app docker.io/mattrayner/lamp
進入app目錄,創建一個PHP文件:
touch get.php
在get.php中輸入以下代碼:
CentOS啟動監聽后,在Ubuntu上書寫一個GET的HTTP包,并進行URL編碼。需要注意的是將回車換行替換為%0d%0a
:
GET /ssrf/get.php?name=hsj HTTP/1.1
Host:172.16.129.74
編碼后:
GET%20%2Fssrf%2Fget.php%3Fname%3Dhsj%20HTTP%2F1.1%0d%0aHost%3A172.16.129.74%0d%0a
在執行請求時,可能會遇到權限不足的問題。此時,可以通過以下步驟解決:
docker stop lamp
docker rm lamp
docker run -d -p 80:80 -v /root/www:/app --name ssrf docker.io/mattrayner/lamp
與GET請求類似,POST請求也需要在特定的環境下進行配置。創建post.php文件并插入以下代碼:
構造POST請求的數據包如下:
POST /post.php HTTP/1.1
host:172.16.129.74
Content-Type:application/x-www-form-urlencoded
Content-Length:8
name=HXB
URL編碼后:
POST%20%2Fpost.php%20HTTP%2F1.1%0d%0ahost%3A172.16.129.74%0d%0aContent-Type%3Aapplication%2Fx-www-form-urlencoded%0d%0aContent-Length%3A8%0d%0a%0d%0aname%3DHXB%0d%0a
通過curl命令發起請求:
curl gopher://172.16.129.74:80/_POST%20%2Fpost.php%20HTTP%2F1.1%0d%0ahost%3A172.16.129.74%0d%0aContent-Type%3Aapplication%2Fx-www-form-urlencoded%0d%0aContent-Length%3A8%0d%0a%0d%0aname%3DHXB%0d%0a
盡管Gopher協議在現代互聯網中的使用已經減少,但其簡單的設計和特定的應用場景仍然為其保留了一席之地。在某些情況下,Gopher協議可以作為一種較為隱蔽的通信方式,在不被注意的情況下完成數據傳輸和信息獲取。
然而,隨著網絡安全的不斷加強,Gopher協議的使用也面臨著新的挑戰。例如,現代網絡防火墻和入侵檢測系統可能會對Gopher協議的流量進行嚴格的監控和過濾。因此,在實際應用中,需要對其進行更為細致的配置和測試,確保其能夠在特定環境下有效運行。
Gopher協議作為一種早期的互聯網協議,盡管在現代應用中使用較少,但其仍具有一定的技術價值。通過合理的配置和使用,Gopher協議可以在特定的網絡環境中發揮獨特的作用,尤其是在信息獲取和數據傳輸方面。本文通過實際案例和代碼演示,展示了如何利用Gopher協議進行GET和POST請求,同時探討了其在現代網絡中的應用與挑戰。
問:Gopher協議在現代互聯網中的主要用途是什么?
問:如何在Gopher協議中實現GET請求?
問:Gopher協議與HTTP協議有何區別?
問:在Gopher協議中遇到權限問題如何解決?
問:Gopher協議的安全利用有哪些注意事項?