一. SSRF漏洞
01SSRF概念
服務端請求偽造(Server-Side Request Forgery),指的是攻擊者在未能取得服務器所有權限時,利用服務器漏洞以服務器的身份發送一條構造好的請求給服務器所在內網。SSRF攻擊通常針對外部網絡無法直接訪問的內部系統。
02SSRF的原理
很多web應用都提供了從其他的服務器上獲取數據的功能。使用指定的URL,web應用便可以獲取圖片,下載文件,讀取文件內容等。SSRF的實質是利用存在缺陷的web應用作為代理攻擊遠程和本地的服務器。一般情況下, SSRF攻擊的目標是外網無法訪問的內部系統,黑客可以利用SSRF漏洞獲取內部系統的一些信息(正是因為它是由服務端發起的,所以它能夠請求到與它相連而與外網隔離的內部系統)。SSRF形成的原因大都是由於服務端提供了從其他服務器應用獲取數據的功能且沒有對目標地址做過濾與限制。
二. unix套接字是什么,有什么用?unix本地套接字是什么?可以攻擊嘛?
1,哎,套接字這個詞太不好理解了,其實它就是socket。編程常見。
套接字上聯應用進程,下聯網絡協議棧,是應用程序通過網絡協議進行通信的接口,是應用程序與網絡協議根進行交互的接口
2,本地套接字是 IPC,也就是本地進程間通信的一種實現方式;本地套接字一般也叫做 UNIX 域套接字。本地套接字是一種特殊類型的套接字,和 TCP/UDP 套接字不同。TCP/UDP 即使在本地地址通信,也要走系統網絡協議棧,而本地套接字,嚴格意義上說提供了一種單主機跨進程間調用的手段,減少了協議棧實現的復雜度,效率比 TCP/UDP 套接字都要高許多。類似的 IPC 機制還有 UNIX 管道、共享內存和 RPC 調用等。
本地字節流套接字和 TCP 服務器端、客戶端編程最大的差異就是套接字類型的不同。本地字節流套接字識別服務器不再通過 IP 地址和端口,而是通過本地文件。
3,
三. 反向代理是什么?
反向代理是為服務器服務的,讓人找不到服務器真實地址。
四. CVE-2021-40438漏洞原理:利用apache函數缺陷,構造可控的反向代理:Apache在正常情況下,因為識別到了unix套接字,所以會把用戶請求發送給這個本地文件套接字,而不是后端URL。使unix套接字過長,就會返回空,請求就會發送給后端的url。具體說明:當遠程在目標環境(服務器)使用了mod_proxy做反向代理,比如ProxyPass / "http://localhost:8000/",此時通過請求http://target/?unix:{'A'*5000}|http://example.com/即可向http://自己的地址或自己可控的網站.com發送請求(這個請求就是從服務端發起的向自己的請求),造成一個SSRF攻擊。
哎,這個反向代理和ssrf原理把我弄昏頭了。理解了好久。。。也不知道我說明白了了沒有。
另:https://blog.csdn.net/asasd101/article/details/120838177 這個文章寫的很詳細。