CRLF注入攻擊


 

原理:http數據包通過\r\n\r\n來分開http header何http body

實現:首先這種攻擊發生在應用層,且發生在服務器返回給我們的http reponse沒有經過敏感字符的過濾,我們能夠構造攻擊語句來控制服務器的http響應.以下為例子:

1、Twitter的HTTP響應拆分

難度:高

廠商:https://twitter.com/

報告地址:https://hackerone.com/reports/52042

報告日期:2015年4月21日

獎金:$3,500

2015年的4月,Twitter收到了一個漏洞報告,報告稱黑客可以通過該漏洞在用戶向Twitter發起的請求數據中**任意cookie值。

用戶在訪問https://twitter.com/i/safety/report_story(用戶可以在這里舉報廣告)地址時,服務器會獲取參數reported_tweet_id的值,並將其設置到cookie中,最后導致了漏洞。

實際上Twitter是有進行校驗的,它會禁止用戶提交換行符0x0a(%0a)。但Twitter在處理過程中,會先驗證是否提交了禁止的字符,之后如果提交的數據是UTF-8編碼過的,則會將其轉為原始的unicode碼后去掉一些無用字符后再取剩下的字節,正是因為這樣的邏輯導致了繞過。

比如說用戶提交的是:%E5%98%8A,這個不包含換行符所以不會被攔截,服務器接收到后將其轉成原始的unicode碼:U+560A,最后取了0A,這時候就變成換行符了。

繞過了CRLF攔截后,通過javascript語句來執行xss攻擊效果會更好!比如如下鏈接:

https://twitter.com/login?redirect_after_login=https://twitter.com:21/%E5%98%8A%E5%98%8Dcontent-type:text/html%E5%98%8A%E5%98%8Dlocation:%E5%98%8A%E5%98%8D%E5%98%8A%E5%98%8D%E5%98%BCsvg/onload=alert%28innerHTML%28%29%E5%98%BE

注意上面的%E5%E98%8A,會經過服務器處理后返回的數據就會變成下面的html響應的形式:

https://twitter.com/login?redirect_after_login=https://twitter.com:21/(CRLF)
content-type:text/html(CRLF)
location:<svg/onload=alert(innerHTML)>

在換行符后,添加了可執行的javascript,最后可盜取用戶的會話數據。

小貼士:對滲透測試而言,觀察能力和良好的技能都是缺一不可的。

 

2、v.shopify.com響應拆分

難度:中

廠商:https://v.shopify.com/

報告地址:https://hackerone.com/reports/1064272

報告日期:2015年12月22日

獎金:$500

 shopify會在后台中記錄你上次訪問的是哪一個商店,然后將其放置在cookie中,通過這個方式:/last_shop?SITENAME.shopify.com。

 然后在2015年的12月份,漏洞提交者發現Shopify沒有對參數進行校驗,以至於白帽通過Burp Suite抓包提交%0d%0a就能造成CRLF漏洞,部分鏈接為:

/last_shop?xxx.shopify.com%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2019%0d%0a%0d%0a<html>deface</html>

在上面的鏈接中,%20是空格,%0d%0a是換行字符。結果,瀏覽器收到了兩個頭部並選擇渲染了后者,最后可導致各種漏洞,比如xss。

小貼士:要十分細心觀察我們提交了哪些參數,然后是否將數據放到了響應頭部中。在這個例子中,shopify從鏈接中獲取參數last_shop的值並將其放在了cookie里,這才導致了CRLF漏洞。

 總結:

  對滲透測試而言,觀察能力和良好的技能都是缺一不可的。知道字符的編碼方式以及可能造成的漏洞是非常重要的一個滲透測試技巧。%0D%0A可以被用來測試服務器是否存在CRLF漏洞,如果存在漏洞,那就想辦法深入一下,通過和xss聯用來擴大戰果。另一方面,如果服務器會對%0D%0A進行處理,那么你就需要思考一下你可以怎么對這些數據進行編碼,然后測試服務器是否會對數據進行雙重解碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM