【由淺入深_打牢基礎】HOST頭攻擊
前幾天一直準備別的事情,然后用了2/3天時間去挖了補天某廠的SRC,還是太菜了,最后提交了一個低危(還沒出結果,還有點敏感資訊泄露,感覺略雞肋也沒交),不過偶然發現之前提的一個公益SRC被收了(當時快半個月都沒人處理)不過沒money,等過幾天有時間再看吧,還是得虛心學技術,慢慢的進步,
1. HOST頭的作用
微信公眾號:小惜滲透,歡迎大佬一起交流進步
1.1 文字原理講解
首先我們需要了解一個概念叫虛擬主機
,也就是一臺服務器上存在多個網站,你會想這還不簡單,每個站點分一個埠即可,但是我說的是一個埠,
既然如此,那么我們不管它是怎么實作的,我們要關注的是為什么如此,為什么我們訪問這些網站均是正常的呢?這就是HOST頭的作用了,當我們去訪問一個url的時候,這個域名只會被DNS決議為IP,但是因為這些虛擬主機的IP是同一個,所以會看我們的HOST頭,它的值是誰,那么服務器就去交給那個站去回應,(如下圖)

1.2 實際演示
我這里用小皮面板
再來演示一下它的奇妙之處,首先我先創建兩個站點,分別是pikachu和dvwa,配置如下圖,


可以看到,這時候我給它們不同的域名,而且埠均為本機的80,好,接下來我去訪問,


兩個站點沒有任何問題,緊接著我重新訪問dvwa并抓包

再來看一下頁面

OK相信到這里就了解了,HOST頭的作用了,接下來,圍繞著Burp Suite官方實驗室,演示下會發生的安全問題
2. 漏洞利用
2.1 基本密碼重置中毒
要求如下:

我們需要登錄到Carlos才可以完成,登錄時點擊忘記密碼

可以看到是根據我們的賬戶名或郵箱地址,發一封重置密碼的郵件給我們

我們先用自己的賬戶,也就是wiener來試試,ok,點擊后去漏洞利用服務器試試

往下翻有個Email client,點進去查看剛剛的郵件內容

看到有個修改密碼連接,ok,我們打開它,并隨便修改成123


接下來我們去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,說干就干,

緊接著去我們漏洞利用服務器查一下token

構造重置密碼鏈接,直接將我們重置密碼的包里面的csrf
(值在上上個圖中)和temp-forgot-password-token
值改成對應的,然后成功了

2.2 主機標頭身份驗證繞過
要求如下:

既然要進入管理面板,那么首先我們應該找到路徑,隨手加一個admin,演示僅對本地用戶可用

一般我們搭建靶場用的最多的就是localhost,同理這里將HOST頭改為localhost

直接洗掉,同樣還得抓包改HOST

2.3 通過模糊請求導致 Web 快取中毒
要求如下:

利用程序:
這個我盲猜可能就就是web快取投毒并且非快取建是HOST,相信看到我之前那篇文章的兄弟一下就懂了,就是web快取投毒,投到HOST鍵上
首先重繪一下觀察歷史包,發現加載了兩個js

存在快取機制

那我現在漏洞利用服務器構造一下js檔案

ok,改一下HOST,投毒吧

改了發現不可以,那么也就不能在原來基礎上修改,那就嘗試在原來基礎上增加,雙寫HOST

可以看到加載我們利用服務器的js了,這個時候正常如何訪問就會中毒了

2.4 基于路由的 SSRF
要求如下:

利用程序:
首先這里提示了,必須使用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,所以直接爆破,如下圖設定

別忘了關掉自動更新Header功能

Payload設定如下

這里因為沒特殊字符,所以paylaod Encoding勾不勾沒關系,直接爆破,130被爆破成功

然后我們訪問主頁并抓包將HOST改成192.168.0.130然后放出去,同樣的洗掉用戶的這個POST包也需要將HOST改為192.168.0.130

成功了

2.5 SSRF 通過有缺陷的請求決議
要求:

利用程序:
這題拿到手很懵圈,感覺跟上一個一樣,于是按照上一個的做法將HOST先改成Collaborator Server
的地址,發現回傳403,并且Collaborator Server
無決議

既然如此,再看一下要求,基于路由的
這幾個大字出現在眼前的時候,就應該意識到是路由地址的問題,于是嘗試將GET / 改成絕對的

非常nice,然后就跟上邊一樣了,爆破,251

洗掉用戶,像下邊這樣改包(請求admin目錄的和洗掉用戶的都類似)

成功

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/494483.html
標籤:其他
上一篇:SQL注入漏洞篇