【由淺入深_打牢基礎】HOST頭攻擊
前幾天一直準備別的事情,然後用了2/3天時間去挖了補天某廠的SRC,還是太菜了,最後提交了一個低危(還沒出結果,還有點敏感資訊洩露,感覺略雞肋也沒交),不過偶然發現之前提的一個公益SRC被收了(當時快半個月都沒人處理)不過沒money,等過幾天有時間再看吧,還是得虛心學技術,慢慢的進步。
1. HOST頭的作用
微信公眾號:小惜滲透,歡迎大佬一起交流進步
1.1 文字原理講解
首先我們需要了解一個概念叫虛擬主機
,也就是一臺伺服器上存在多個網站。你會想這還不簡單,每個站點分一個埠即可,但是我說的是一個埠。
既然如此,那麼我們不管它是怎麼實現的,我們要關注的是為什麼如此,為什麼我們訪問這些網站均是正常的呢?這就是HOST頭的作用了,當我們去訪問一個url的時候,這個域名只會被DNS解析為IP,但是因為這些虛擬主機的IP是同一個,所以會看我們的HOST頭,它的值是誰,那麼伺服器就去交給那個站去響應。(如下圖)
image-202206081343496331.2 實際演示
我這裡用小皮皮膚
再來演示一下它的奇妙之處,首先我先建立兩個站點,分別是pikachu和dvwa,配置如下圖。
可以看到,這時候我給它們不同的域名,而且埠均為本機的80,好,接下來我去訪問。
image-20220608135147488 image-20220608135153094兩個站點沒有任何問題,緊接著我重新訪問dvwa並抓包
image-20220608144116741再來看一下頁面
image-20220608144151455OK相信到這裡就瞭解了,HOST頭的作用了,接下來,圍繞著Burp Suite官方實驗室,演示下會發生的安全問題
2. 漏洞利用
2.1 基本密碼重置中毒
要求如下:
image-20220608145041353我們需要登入到Carlos才可以完成,登入時點選忘記密碼
image-20220608145206659可以看到是根據我們的賬戶名或郵箱地址,發一封重置密碼的郵件給我們
image-20220608145241705我們先用自己的賬戶,也就是wiener來試試,ok,點選後去漏洞利用伺服器試試
image-20220608145617649往下翻有個Email client,點進去檢視剛剛的郵件內容
image-20220608145609138看到有個修改密碼連線,ok,我們開啟它,並隨便修改成123
image-20220619163246817 image-20220608145900506接下來我們去Burp看下剛剛的資料包,如下,可以看到裡面存在一個temp-forgot-password-token
值,所以我們現在需要搞到它。
POST /forgot-password?temp-forgot-password-token=F7vqHnRQVDFVZwEfG8CjqPOx4gwgMGr2 HTTP/1.1
Host: ac3d1fxxxxxx060.web-security-academy.net
Cookie: _lab=46%7cMasdCwCFAiRGPkiVdxxxNhS8mYDOMvkk3CWJakAhR0wUzpasdGqNbbKzMESDTwqnN4%2bmfnDv415Yp1OeYCQWOHaYTqDhOeWLYsbDczuZvkT8kfY2yqQxeqN9CdAsyGMC7FUxTGUuUMjnXEJlyJaZ1ArCyi5xbmznovOWg2psOzMjkzQnGNekasdzgthyY%3d; session=jcqZVUOp3gtGaRpFeBD7r577ERV38AkV7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 135
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers
Connection: close
csrf=KmpFXtDQMQuzxEkE0t8LRYxfT698ibN1&temp-forgot-password-token=F7vqHnRQVDFVZwEfG8CjqPOx4gwgMGr2&new-password-1=123&new-password-2=123
接下來我的猜想就來了,既然我們知道漏洞肯定跟HOST頭注入有關,那麼我猜我們剛剛點選忘記密碼,發包的時候肯定是抓不到這個token的,而是網站後端伺服器傳送到我們的郵箱,但是這個時候如果我們將HOST頭改成我們自己利用伺服器,那麼流量會不會就會到我們這裡,然後根據這個token值構造重置密碼連結,ok,說幹就幹。
image-20220619163138663緊接著去我們漏洞利用伺服器查一下token
image-20220608151427869構造重置密碼連結,直接將我們重置密碼的包裡面的csrf
(值在上上個圖中)和temp-forgot-password-token
值改成對應的,然後成功了
2.2 主機標頭身份驗證繞過
要求如下:
image-20220608161747546既然要進入管理皮膚,那麼首先我們應該找到路徑,隨手加一個admin,演示僅對本地使用者可用
image-20220619163056154一般我們搭建靶場用的最多的就是localhost,同理這裡將HOST頭改為localhost
image-20220608162732093直接刪除,同樣還得抓包改HOST
image-202206081629121472.3 通過模糊請求導致 Web 快取中毒
要求如下:
image-20220619163031177利用過程:
這個我盲猜可能就就是web快取投毒並且非快取建是HOST,相信看到我之前那篇文章的兄弟一下就懂了,就是web快取投毒,投到HOST鍵上
首先重新整理一下觀察歷史包,發現載入了兩個js
image-20220619163858150存在快取機制
image-20220619163938866那我現在漏洞利用伺服器構造一下js檔案
image-20220619164331866ok,改一下HOST,投毒吧
image-20220619165421749改了發現不可以,那麼也就不能在原來基礎上修改,那就嘗試在原來基礎上增加,雙寫HOST
image-20220619165540252可以看到載入我們利用伺服器的js了,這個時候正常如何訪問就會中毒了
image-202206191738203862.4 基於路由的 SSRF
要求如下:
image-20220619173951042利用過程:
首先這裡提示了,必須使用Burp Collaborator
來進行測試,如果不知道它是什麼,可以百度,我暫時沒找到好文章,後續打算就其使用寫個帖子,這裡先簡單理解成dnslog就好了,資料由Burp->靶機,靶機響應到Burp Collaborator
再到Burp,也就是說它的內網靶機不會出網,除非是Burp自帶Burp Collaborator
地址,所以我們需要配置一下
點選Burp
->Burp Collaborator client
出現下圖介面,點選Copy to clipboard
來獲取一個隨機地址
然後可以在Project options
裡面檢視一下,我們這裡使用預設的Collaborator的server就好
嘗試SSRF漏洞,將訪問實驗室主頁的包的HOST頭改成我們的Collaborator server
地址,然後發包,然後就可以看到Collaborator server
存在流量,然後就可以關掉Collaborator了
證明存在SSRF漏洞,可通過HOST值訪問內部敏感系統,但是不知道IP,所以直接爆破,如下圖設定
image-20220619174730976別忘了關掉自動更新Header功能
image-20220619221528007Payload設定如下
image-20220619174835235這裡因為沒特殊字元,所以paylaod Encoding勾不勾沒關係,直接爆破,130被爆破成功
image-20220619221621267然後我們訪問主頁並抓包將HOST改成192.168.0.130然後放出去,同樣的刪除使用者的這個POST包也需要將HOST改為192.168.0.130
image-20220619221949746成功了
image-202206192220228112.5 SSRF 通過有缺陷的請求解析
要求:
image-20220619222536993利用過程:
這題拿到手很懵圈,感覺跟上一個一樣,於是按照上一個的做法將HOST先改成Collaborator Server
的地址,發現返回403,並且Collaborator Server
無解析
既然如此,再看一下要求,基於路由的
這幾個大字出現在眼前的時候,就應該意識到是路由地址的問題,於是嘗試將GET / 改成絕對的
非常nice,然後就跟上邊一樣了,爆破,251
image-20220619223436312刪除使用者,像下邊這樣改包(請求admin目錄的和刪除使用者的都類似)
image-20220619224113256成功
image-20220619224124325