web緩存欺騙

參考bobao.#/learning/detail/4175.html

關于web緩存

一些靜態(tài)文件,如jpg汁讼、js、css文件會被中間的代理服務器緩存下來阔墩,減少響應延遲嘿架。

服務器響應

web緩存欺騙以來于瀏覽器以及web服務器的響應。當請求home.php/x.css與請求home.php的響應內(nèi)容相同時啸箫,緩存攻擊才有效耸彪。

web緩存欺騙方法

1、攻擊者誘使用戶訪問“https://www.bank.com/account.do/logo.png”忘苛。

2蝉娜、受害者的瀏覽器會請求“https://www.bank.com/account.do/logo.png”。

3扎唾、請求到達代理服務器召川,代理服務器沒有緩存過這個文件,因此會向web服務器發(fā)起請求胸遇。

4荧呐、Web服務器返回受害者的賬戶頁面,響應代碼為200 OK纸镊,表明該URL與已有頁面一致倍阐。

5、代理機制收到文件內(nèi)容逗威,識別出該URL的結尾為靜態(tài)文件擴展名(.png)峰搪。由于在代理服務器上已經(jīng)設置了對所有靜態(tài)文件進行緩存,并會忽略掉緩存頭部凯旭,因此偽造的.png文件就會被緩存下來概耻。與此同時使套,緩存目錄中會創(chuàng)建名為“account.do”的一個新的目錄,logo.png文件會緩存在這個目錄中咐蚯。

6童漩、用戶收到對應的賬戶頁面。

7春锋、攻擊者訪問“https://www.bank.com/account.do/logo.png”頁面矫膨。請求到達代理服務器,代理服務器會將已緩存的受害者賬戶頁面發(fā)給攻擊者的瀏覽器期奔。侧馅、

攻擊條件

1、訪問home.php/j.css與訪問home.php的響應內(nèi)容一致

2呐萌、Web應用啟用了Web緩存功能馁痴,并且會根據(jù)文件的擴展名來緩存,同時會忽略掉任何緩存頭部肺孤。

3罗晕、受害者在訪問惡意URL地址時必須已經(jīng)過認證。

現(xiàn)有的web框架

以下是幾種有效的存在web緩存欺騙的web框架

1赠堵、PHP

創(chuàng)建不使用任何框架的PHP WEB應用小渊,該應用匯忽略掉URL尾部的任何附加載荷,返回真實頁面的內(nèi)容茫叭。

2酬屉、Django

Django使用調(diào)度器(dispatcher)來處理Web請求,調(diào)度器使用urls文件來實現(xiàn)揍愁。在這些文件中呐萨,我們可以設置正則表達式來識別URI中具體請求的資源,然后返回對應的內(nèi)容莽囤。

因此谬擦,根據(jù)django這種常見配置,當客戶端請求http://www.sampleapp.com/inbox/”時烁登,服務器會返回Inbox頁面的內(nèi)容怯屉。如果將某個不存在的文件附加到該URL尾部(如“http://www.sampleapp.com/inbox/test.css”),這種正則表達式同樣會匹配成功饵沧。如果正則表達式尾部使用了“$”符锨络,那么就不會匹配這種惡意URL地址。

緩存機制

攻擊的第2個條件是web應用啟用了Web緩存功能狼牺,并且會根據(jù)文件的擴展名來緩存羡儿,同時會忽略掉任何緩存頭部。

1是钥、Cloudflare

不幸的是掠归,當訪問惡意URL地址時缅叠,web服務器會返回已有的動態(tài)頁面的緩存頭部,這意味著服務器很有可能會返回帶有“no-cache”指令的文件虏冻。

幸運的是肤粱,Cloudflare存在一個名為“邊緣緩存過期TTL(Edge

cache expire TTL)”的功能,這個功能可以用來覆蓋任何已有的頭部信息厨相。將該功能設置為啟用(on)狀態(tài)時领曼,服務器返回的帶有“no-cache”指令的文件仍會被緩存下來。出于各種原因蛮穿,在Cloudflare的建議下庶骄,該功能通常會處于啟用狀態(tài)。

2践磅、IIS ARR

應用程序請求路由(Application Request Routing单刁,ARR)模塊可以為IIS帶來負載均衡功能。

ARR模塊提供的一個功能就是緩存功能府适。Web服務器可以通過負載均衡器設置緩存規(guī)則羔飞,以便將文件保存到緩存目錄中。在創(chuàng)建新的緩存規(guī)則時檐春,使用通配符和目標擴展名來定義待緩存的文件類型褥傍。當文件經(jīng)過ARR處理時,ARR會根據(jù)文件對應的URL來匹配緩存規(guī)則喇聊。實際上,ARR會根據(jù)URL尾部的擴展名來識別文件類型蹦狂。

此外誓篱,IIS ARR中還包含一個選項,可以忽略掉文件的緩存頭部凯楔,導致該規(guī)則在任何情況下都適用窜骄。

如果客戶端訪問惡意URL(http://www.sampleapp.com/welcome.php/test.css),那么緩存目錄中就會生成一個新的目錄摆屯,目錄名為welcome.php邻遏,在該目錄中,會生成名為test.css的一個新的文件虐骑,該文件的內(nèi)容為用戶訪問的welcome.php頁面的內(nèi)容

3准验、Nginx

作為負載均衡服務器,NGINX服務器也可以提供緩存功能廷没,來緩存從web服務器返回的頁面糊饱。

可以通過NGINX配置文件來配置緩存規(guī)則。如果使用下圖所示的配置文件颠黎,那么NGINX就會緩存特定類型的靜態(tài)文件另锋,并且會忽略這些文件的緩存頭部滞项。

當來自于web服務器的某個頁面到達NGINX時,NGINX會搜索URL尾部的擴展名夭坪,根據(jù)擴展名識別文件的類型文判。

當經(jīng)過認證的用戶訪問惡意URL時(http://www.sampleapp.com/app/welcome.php/test.css),用戶的頁面就會被緩存到緩存目錄中室梅。

緩解措施

1戏仓、配置緩存策略,只有文件的HTTP緩存頭部允許緩存時竞惋,才會緩存文件

2柜去、將所有的靜態(tài)文件保存到某個指定目錄,并且只緩存這個目錄拆宛。

3嗓奢、配置web服務器,使其在處理諸如“http://www.example.com/home.php/nonexistent.css”的頁面時浑厚,不會返回home.php的內(nèi)容股耽,而會返回404或者302響應。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钳幅,一起剝皮案震驚了整個濱河市物蝙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌敢艰,老刑警劉巖诬乞,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钠导,居然都是意外死亡震嫉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門牡属,熙熙樓的掌柜王于貴愁眉苦臉地迎上來票堵,“玉大人,你說我怎么就攤上這事逮栅°彩疲” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵措伐,是天一觀的道長特纤。 經(jīng)常有香客問我,道長侥加,這世上最難降的妖魔是什么叫潦? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上矗蕊,老公的妹妹穿的比我還像新娘短蜕。我一直安慰自己,他們只是感情好傻咖,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布朋魔。 她就那樣靜靜地躺著,像睡著了一般卿操。 火紅的嫁衣襯著肌膚如雪警检。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天害淤,我揣著相機與錄音扇雕,去河邊找鬼。 笑死窥摄,一個胖子當著我的面吹牛镶奉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播崭放,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哨苛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了币砂?” 一聲冷哼從身側響起建峭,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎决摧,沒想到半個月后亿蒸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡掌桩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年祝懂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拘鞋。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖矢门,靈堂內(nèi)的尸體忽然破棺而出盆色,到底是詐尸還是另有隱情,我是刑警寧澤祟剔,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布隔躲,位于F島的核電站,受9級特大地震影響物延,放射性物質發(fā)生泄漏宣旱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一叛薯、第九天 我趴在偏房一處隱蔽的房頂上張望浑吟。 院中可真熱鬧笙纤,春花似錦、人聲如沸组力。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽燎字。三九已至腥椒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間候衍,已是汗流浹背笼蛛。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛉鹿,地道東北人滨砍。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像榨为,于是被迫代替她去往敵國和親惨好。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理随闺,服務發(fā)現(xiàn)日川,斷路器,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 上一篇《WEB請求處理一:瀏覽器請求發(fā)起處理》矩乐,我們講述了瀏覽器端請求發(fā)起過程龄句,通過DNS域名解析服務器IP,并建...
    七寸知架構閱讀 80,995評論 21 356
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,099評論 25 707
  • 其實就是因為睡不著散罕,關了燈還是睜著眼睛分歇。城市的夜不夠黑,窗外的路燈總是能透進一些光來欧漱。 許多年沒能靜下心來寫一點睡...
    鄔小悲閱讀 455評論 0 2
  • 函數(shù)是用來完成特定任務的獨立的代碼塊职抡。可以給函數(shù)起一個名字误甚,用于標識一個函數(shù)缚甩,當函數(shù)需要執(zhí)行的時候,這個名字就會用...
    EndEvent閱讀 743評論 1 3