检测到目标url存在框架注入漏洞_HOST注入攻击剖析
??關于網站的滲透測試可能師傅們都有自己一套思路,有個共同點就是目標網站基本屬于全靜態頁面,幾乎很少存在動態參數這時意味著客戶端無法通過提交參數形式進行測試,理論上也規避掉了許多風險。既然無法從參數層面進行測試,那么考慮嘗試下修改header中的值看看是否被服務端允許,比如HOST值
一??HOST標頭概念
????? ?host標頭作為Request Header中不可或缺的一部分,大家知道http版本從開始的1.0到1.1以及以后的1.2經歷三個版本,且目前1.1用戶最多。在1.0中Request Header中的host值其實可以為空,和1.1區別主要是1.1支持不間斷連接、1.0則每次得到響應后斷開連接。另外1.0不支持虛擬主機只能一個ip對應一臺服務器,這也是1.0中host可以為空的主要原因。
? ???????? Host被解析的大致流程如下:
客戶端-->請求-->URL-->解析IP地址-->服務器-->解析Host值-->轉發具體域名????????在1.1中host標頭的主要功能將客戶端請求分發到內部具體的域名中,當然如果存在ng反代或負載等情況下當流量到達服務器之前可能會更改host的值。如果1.1中不包含host的值或值格式有誤服務器則返回400或其他錯誤,下圖以某官網為例
????????????????????????????????????????????????(上圖攜帶host值)
????????????????????????????????????????????????(上圖host值為空)
? ? 在基于目標存在虛擬主機(同IP不同域名)情況下,url負責解析IP,服務器接收到請求時依據host值負責分發到具體域名中。
二???漏洞產生及危害
??????服務器充分信任客戶端所提交的數據或管理員沒有意識到host可能產生的風險,比如服務器支持X-Forwarded-Host標頭(XFH),X-Host等。在修改原始Host值或者通過添加XFH標頭將值設置其它域還能被服務器正常接受,就判斷可能存在Host注入了..
????下圖通過修改某官網host值,服務器返回404找不到路徑..
????下圖刪除或修改百度的host值看有什么反應
? ? 當刪除百度Host值依然返回200OK,如果修改的話直接返回403,因此判斷服務器后端有默認配置www.baidu.com,host值為空時則采用默認配置;當修改值時因為依然存在值會直接解析該值所以不會重定向到www.baidu.com,由于無法解析2222因此返回403。
????了解host基本工作原理后,那么存在host漏洞會造成哪些影響?理論上造成的影響其實有很多比如越權,SSRF,SQL注入,XSS等等。。
?????下面利用burp場景介紹基于host注入造成的垂直越權,正常請求如下
????當訪問管理頁面時出現未授權訪問
????當將host值修改為localhost時訪問成功
? ???具體漏洞利用場景有很多,這里不一一贅述,對host注入感興趣的朋友可以私信交流。
三? 如何探測host注入
? ?1.探測網址url是否包含host注入漏洞很簡單,嘗試修改或刪除host值后觀察服務器響應,如果修改后或完全刪除還能夠被服務器接收并返回響應基本判斷存在注入,當然具體還要推測服務器后端具體配置。
????2.通過探測網站支持的標頭來測試,如X-Host,X-Forwarde-Host等,這里推薦一款老外寫的自動化主機頭檢測工具在burpsuite中直接安裝下載??Param Miner,使用方法很簡單
?安裝成功后在站點地圖中右鍵使用
在Extender中Extensions中查看
四? 如何規避Host注入
?????1.在后端配置文件中結合業務情況禁用絕對路徑的url,采用相對路徑如/wp-admin/a.php
????2.如必須絕對路徑,應手動添加絕對路徑并指定域名如https://a.baidu.com/wp-admin/a.php,在配置文件中引用此值,而不是host值
??????3.在web框架中以白名單方式驗證,只允許允許的域
??????4.禁用不需要的標頭如XFH,XH等,一些中間件默認可能支持XFH標頭?
????????????感謝閱讀,不足之處歡迎大佬斧正~
總結
以上是生活随笔為你收集整理的检测到目标url存在框架注入漏洞_HOST注入攻击剖析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无人机快递要普及了?顺丰旗下公司新增相关
- 下一篇: 图像信噪比计算公式_CT 科研设计之图像