男女做爽爽爽网站-男女做羞羞高清-男女做爰高清无遮挡免费视频-男女做爰猛烈-男女做爰猛烈吃奶啪啪喷水网站-内射白浆一区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

一文講解HTTP報頭之host頭攻擊

admin
2025年5月13日 23:47 本文熱度 51

前言

今天來看一個比較有意思的漏洞-HTTP報頭攻擊,也就是host頭攻擊。在我們的印象中host頭是我們所要訪問的域名,默認(rèn)是不可控的,因為一旦改變我們就不能正確訪問目標(biāo)地址。其實不然,在某些情況下,改變了host頭依然可以訪問目標(biāo)。那么host頭在某些情況下也是我們可以控制的輸入,這也就為host頭攻擊提供了可能。

由于本人水平有限,文章中可能會出現(xiàn)一些錯誤,歡迎各位大佬指正,感激不盡。如果有什么好的想法也歡迎交流~~

什么是 HTTP Host 頭?

重新再來認(rèn)識一下什么是host頭。

從 HTTP/1.1 開始,HTTP Host 頭是一個必需的請求頭,其指定了客戶端想要訪問的域名。例如我們訪問百度,發(fā)送的請求如下,會包含一個host頭。

HTTP頭的作用

當(dāng)我們在瀏覽器中輸入一個網(wǎng)址時,首先會根據(jù)網(wǎng)址進行DNS解析,找到對應(yīng)的IP地址,然后將請求發(fā)送到對應(yīng)的IP地址。

我理解的域名與host頭其實并不是一個概念,域名是我們在瀏覽器中輸入要訪問的地址,而host頭是數(shù)據(jù)包中的一個值

那么什么地方會用到http頭呢?

1)虛擬主機根據(jù)HTTP頭訪問具體的業(yè)務(wù)。目前由于IPV4的地址已經(jīng)耗盡,所以越來越多的應(yīng)用對應(yīng)同一個公網(wǎng)IP,這種情況下,就需要根據(jù)HTTP頭來判斷具體需要訪問那個業(yè)務(wù)。

2)通過代理訪問后端組件。域名的IP解析到代理的公網(wǎng)IP,然后代理在根據(jù)HTTP頭來分配到具體的后端組件。我們經(jīng)常使用的CDN也可以認(rèn)為是這種情況。

HTTP頭是否可以修改

答案當(dāng)然是可以修改的,如下面在burp里面可以直接修改host頭,修改host頭以后還可以正常訪問應(yīng)用。

如下圖,修改以后還可以正常訪問

HTTP頭攻擊

HTTP Host 頭攻擊會利用以不安全的方式處理 Host 頭的漏洞網(wǎng)站。如果服務(wù)器隱式信任 Host 標(biāo)頭,且未能正確驗證或轉(zhuǎn)義它,則攻擊者可能會使用此輸入來注入有害的有效負(fù)載,以操縱服務(wù)器端的行為。將有害負(fù)載直接注入到 Host 頭的攻擊通常稱為 "Host header injection"(主機頭注入攻擊)。

上面我們已經(jīng)了解到就算改變了HTTP報頭也是可以正常訪問到應(yīng)用的,那么如果后端使用HTTP報頭,并且沒有做過濾,那么就有可能造成危害。

HTTP報頭可能得攻擊場景

HTTP報頭攻擊可能存在以下的利用場景

1)重置密碼或者注冊用戶登場景發(fā)送重置鏈接取HTTP報頭的值

2)根據(jù)host頭限制一些資源的訪問

3)系統(tǒng)啟用了web緩存功能,可以利用web緩存投毒

4)根據(jù)host頭進行路由(基于路由的SSRF)

在portswigger上有關(guān)于http host攻擊的專題,如下:

鏈接:https://portswigger.net/web-security/all-labs#http-request-smuggling

類似密碼重置場景攻擊

幾乎所有需要登錄的網(wǎng)站都實現(xiàn)了下面的場景。下面以密碼重置來簡要概述這個場景

  • 用戶輸入用戶名或電子郵件地址,然后提交密碼重置請求。

  • 網(wǎng)站檢查該用戶是否存在,然后生成一個臨時的、唯一的、高熵的 token 令牌,并在后端將該令牌與用戶的帳戶相關(guān)聯(lián)。

  • 網(wǎng)站向用戶發(fā)送一封包含重置密碼鏈接的電子郵件。用戶的 token 令牌作為 query 參數(shù)包含在相應(yīng)的 URL 中,如 https://normal-website.com/reset?token=0a1b2c3d4e5f6g7h8i9j。

  • 當(dāng)用戶訪問此 URL 時,網(wǎng)站會檢查所提供的 token 令牌是否有效,并使用它來確定要重置的帳戶。如果一切正常,用戶就可以設(shè)置新密碼了。最后,token 令牌被銷毀。

與其他一些方法相比,這個過程足夠簡單并且相對安全。然而,它的安全性依賴于這樣一個前提:只有目標(biāo)用戶才能訪問他們的電子郵件收件箱,從而使用他們的 token 令牌。而密碼重置中毒就是一種竊取此 token 令牌以更改其他用戶密碼的方法

這里有一個問題,如果我們拿到這個鏈接就可以修改用戶的密碼,而token是動態(tài)生成的,我們一般是無法獲取的。如果這個鏈接是根據(jù)host生成的,則給我們拿到這個鏈接提供了一種可能。如下:

如何構(gòu)造一個密碼重置中毒攻擊

如果發(fā)送給用戶的 URL 是基于可控制的輸入(例如 Host 頭)動態(tài)生成的,則可以構(gòu)造如下所示的密碼重置中毒攻擊:

  1. 攻擊者根據(jù)需要獲取受害者的電子郵件地址或用戶名,并代表受害者提交密碼重置請求,但是這個請求被修改了 Host 頭,以指向他們控制的域。我們假設(shè)使用的是 evil-user.net 。

  2. 受害者收到了網(wǎng)站發(fā)送的真實的密碼重置電子郵件,其中包含一個重置密碼的鏈接,以及與他們的帳戶相關(guān)聯(lián)的 token 令牌。但是,URL 中的域名指向了攻擊者的服務(wù)器:https://evil-user.net/reset?token=0a1b2c3d4e5f6g7h8i9j 。

  3. 如果受害者點擊了此鏈接,則密碼重置的 token 令牌將被傳遞到攻擊者的服務(wù)器。

  4. 攻擊者現(xiàn)在可以訪問網(wǎng)站的真實 URL ,并使用盜取的受害者的 token 令牌,將用戶的密碼重置為自己的密碼,然后就可以登錄到用戶的帳戶了。

在真正的攻擊中,攻擊者可能會偽造一個假的警告通知來提高受害者點擊鏈接的概率。

即使不能控制密碼重置的鏈接,有時也可以使用 Host 頭將 HTML 注入到敏感的電子郵件中。請注意,電子郵件客戶端通常不執(zhí)行 JavaScript ,但其他 HTML 注入技術(shù)如懸掛標(biāo)記攻擊可能仍然適用。

PortSwigger靶場測試

在這里添加用戶名,然后攔截數(shù)據(jù)包,將數(shù)據(jù)包改成你的exploit server。

然后當(dāng)用戶訪問了這個鏈接以后,你就可以去查看你的exploit server的log日志,可以發(fā)現(xiàn)重啟密碼的鏈接

在瀏覽器中用原來的域名訪問這個重置密碼鏈接

跳出重置密碼的頁面

根據(jù)host限制資源的訪問

有時處于安全的考慮,會把某些功能限制成只能特定的IP或者h(yuǎn)ost頭訪問,那么通過修改host頭就可能繞過這個限制。

portswigger靶場:https://portswigger.net/web-security/host-header/exploiting/lab-host-header-authentication-bypass

訪問robots.txt發(fā)現(xiàn)存在admin頁面,直接訪問顯示拒絕

將host頭改成localhost可能正常訪問

在實際的利用中,往往需要fuzz host頭的內(nèi)容。

web緩存投毒

當(dāng)存在Host頭攻擊的web站點不存在密碼重置的功能等場景時,由于不可能驅(qū)使用戶去抓包修改Host頭,該漏洞就顯得沒有什么作用。

但是,如果目標(biāo)站點使用Web緩存,則可以通過緩存投毒給其他用戶提供帶有病毒的緩存響應(yīng)。此時的Host頭攻擊漏洞轉(zhuǎn)變?yōu)轭愃芚SS存儲型類的漏洞。要構(gòu)造Web緩存投毒攻擊:

  • 需要尋找映射到其他用戶請求的緩存鍵;

  • 下一步則是緩存此惡意響應(yīng);

  • 然后,此惡意緩存將提供給嘗試訪問受影響頁面的所有用戶。

下面結(jié)合portswigger上的實驗來看一下

鏈接:https://portswigger.net/web-security/host-header/exploiting/lab-host-header-web-cache-poisoning-via-ambiguous-requests

打開這個實驗,可以看到,添加一個host頭,會返回在響應(yīng)中,而且啟用了web緩存功能,那么我們可以將host頭替換成我們服務(wù)上同名的文件:/resources/js/tracking.js

如下

多請求幾次,使此請求被緩存下來

此時,其它用戶再去訪問該鏈接,就會訪問到這個已經(jīng)緩存的頁面,也就是可以造成類似于xss的漏洞。

基于host頭進行路由

有的應(yīng)用會根據(jù)host頭進行路由,那么在這種情況下,我們可以通過改變host頭來訪問內(nèi)網(wǎng)的應(yīng)用,也就是常說的SSRF。

這可能需要知道內(nèi)部系統(tǒng)的IP地址(私有地址),一般可以通過信息收集或者Fuzz來判斷有效的私有IP地址(如枚舉192.168.1.1/16)

接下來還是看一下portswigger上面的實驗

鏈接:https://portswigger.net/web-security/host-header/exploiting/lab-host-header-routing-based-ssrf

該實驗已知內(nèi)網(wǎng)中存在admin頁面并且通過host頭進行路由

直接訪問顯示404

爆破內(nèi)網(wǎng)IP嘗試訪問

成功訪問到內(nèi)網(wǎng)應(yīng)用

?

在portswigger還有一個實驗,校驗了host頭的值,只要修改host的值就會拒絕服務(wù),此時可以將host頭放到path中,如下面這種

GET http://evil.web-security-academy.net/ HTTP/1.1

HTTP host頭繞過

有時我們發(fā)現(xiàn)修改host頭時會受到限制,可以通過下面的方式進行繞過

1)檢查限制是否有缺陷,例如沒有限制端口號,只會驗證是否以允許的子域結(jié)尾等等

2)注入多個host頭

如果服務(wù)器端會將第二個Host頭優(yōu)先于第一個Host頭,就會覆蓋掉它的值,然后中轉(zhuǎn)組件會因為第一個Host頭指定了正確的目標(biāo)而照常轉(zhuǎn)發(fā)這個請求包,這樣就能保證它可以順利到達服務(wù)器。

GET /example HTTP/1.1Host: vulnerable.comHost: evil.com

3)提供絕對URL

GET https://evil.com/ HTTP/1.1Host: vulnerable.com

4)注入覆蓋Host頭的字段

與Host頭功能相近的字段,如X-Forwarded-Host、X-Forwarded-For等,這些有時候是默認(rèn)開啟的。

GET /example HTTP/1.1Host: vulnerable-website.comX-Forwarded-Host: attack-stuff

諸如此類,還有其他的字段:

  • X-HostX-Forwarded-ServerX-HTTP-Host-OverrideForwarded

5)添加縮進或者換行

當(dāng)一些站點block帶有多個Host頭的請求時,可以通過添加縮進字符的HTTP頭來繞過

GET /example HTTP/1.1 Host: attack-stuffHost: vulnerable-website.comHTTP Host頭攻擊防護

最簡單的方法是避免在服務(wù)器端代碼中使用前端獲取的host頭。

其他方法包括:

正確配置絕對域名URL

當(dāng)必須使用絕對域名URL時,應(yīng)在配置文件中手動指定當(dāng)前域的URL,并引用配置的值,而不是從HTTP的Host頭中獲取。這種方法可防止密碼重置的緩存投毒。 白名單校驗Host頭的域

如果必須使用Host頭,需要正確校驗它的合法性。這包括允許的域,并使用白名單校驗它,以及拒絕或重定向?qū)o法識別的主機請求。這包括但不僅限于單個web應(yīng)用程序、負(fù)載均衡以及反向代理設(shè)備上。

不支持主機頭覆蓋

確保不適用與Host頭功能相近的字段,如X-Forwarded-Host、X-Forwarded-For等,這些有時候是默認(rèn)開啟的。


總結(jié)

上面簡要介紹了一下HTTP報頭攻擊以及實際可能存在的場景,在實際的測試中遇到的比較少,常規(guī)漏洞已經(jīng)不多見的情況下,可以多測一下這方面的漏洞。


參考鏈接

https://blog.csdn.net/angry_program/article/details/109034421

https://www.freebuf.com/articles/web/375432.html


閱讀原文:原文鏈接


該文章在 2025/5/14 9:08:12 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 毛片内射久久久一区 | 久热亚洲精品一区二区 | 污拔插精品视频永久片库 | 国产精品日本无码久久一 | 国产剧情中文视频在线 | 国产视频 | 精品一区| 1区2区3区4区产品不卡码网站 | 少妇高潮灌满白浆毛片免费看 | 亚洲欧美自拍偷一区二区 | 一区三区三区不卡 | 欧美日韩精品系列一区二区三区 | 进去粗粗硬硬紧紧的好爽免费视频 | 精东传媒app | 亚洲精品欧美精品中文字幕 | 久久精品国产99久久丝袜蜜桃 | 亚洲欧美日韩在线不卡中文 | 麻豆成人入口网站 | 欧美日韩国产亚洲综合不卡 | 亚洲天堂在线免费观看 | free性日本免费观看 | 久久99国产亚洲高清观看首页 | 亚洲中文字幕无码久久 | 91精品欧美成人观看免费 | 国产成人无码免费看视频软件 | 久久综合亚洲色hezyo国产 | 国产午夜精品一区不卡av | 国产精品艺校美女校花在线 | 亚洲国产最新在线一区二区 | 丰满少妇内射一区 | 亚洲第一区二区快射影院 | 中文字幕亚洲天堂 | 亚洲国产精品无码专区在线观看 | 人妻少妇精品 | 精品久久免费视频 | 天天日天天色天天操 | 一本道久久综合日韩精品 | 97无码人妻福利免费公开在线视频 | 2024最新无码片中文字 | 国产经典哔哩哔哩 | 高潮无遮挡成人A片在线看 高潮一区二区三区四区在线播放 |