【題目描述】
X老師告訴小甯其實xff和referer是可以僞造的。
【附件】
線上場景
【過程及思路】
打開線上場景後,出現如下提示:
伺服器那邊要求我們的原始ip是123.123.123.123,我們明顯不是這麼一個ip,怎麼辦呢?
題目告訴我們xff和referer可以僞造,那麼什麼是xff和referer呢?
維基百科給出的解釋:
X-Forwarded-For(XFF)是用來識别通過HTTP代理或負載均衡方式連接配接到Web伺服器的用戶端最原始的IP位址的HTTP頭字段。
Referer 請求頭包含了目前請求頁面的來源頁面的位址,即表示目前頁面是通過此來源頁面裡的連結進入的。服務端一般使用 Referer 請求頭識别通路來源,可能會以此進行統計分析、日志記錄以及緩存優化等。
簡單來說,xff和referer是HTTP協定首部中的兩個字段,分别指出發送方最原始的IP位址,和你從哪個頁面的連結進入的這個頁面。
網絡代理和負載均衡是常用的技術手段,他們發出的請求所帶ip不再是原始發送方的ip。是以,為了識别這個請求最開始是誰發出的,我們就引入了這兩個字段。
然而,他們卻是可以被人工僞造的,下面我們使用Burp Suite這個抓包工具來操作一下。
進入Proxy-Intercept欄進行抓包。(Intercept的配置和使用建議參考官方文檔或其翻譯版)
在左側新添一行:
X-Forwarded-For: 123.123.123.123
點選"Forward"按鈕發送包,得到下一步提示。
同樣的,在原來的基礎上再添一行:
Referer: https://www.google.com
發送後得到flag。
是不是很簡單。
本題中,我們使用Burp Suite對常見的原始ip和頁面來源字段xff和referer進行僞造,達到繞過某種Web伺服器的弱檢查的效果。
【答案】
如果文章對你有幫助,就動動手指點贊、喜歡、支援一下咖啡貓吧,謝謝!