1. 程式人生 > >CRLF註入學習

CRLF註入學習

pro HR prot tex set 技術 發出 href 控制

預備

  <CRLF>是換行符,CRLF註入顧名思義就是把換行符寫入,那麽要把換行符寫入到哪裏呢?看看下面的http頭

  技術分享圖片

  可以看到,每一行都包含特定的頭部信息,然後以換行為標誌寫入其他的頭部信息,例如Host:127.0.0.1占一行,User-Agent占一行。

  看到這裏可以知道,CRLF註入就是當http頭部某一行頭信息可以被用戶操控時,插入<CRLF>從而控制其他的頭信息。

例子

  127.0.0.1/Test/CRLF註入.php?url=111111這個頁面擁有CRLF註入漏洞,看看它的請求頭

  技術分享圖片

  響應頭

  技術分享圖片

  在發出http請求後,返回了一個重定向的響應頭,而在響應頭的Location處可以看到在url中輸入的111111,該頭信息可控。

  響應的內容和頭部信息用兩個換行符分割Content-Type:text/html;charset=UTF-8<CRLF><CRLF>1111111111haha,那麽當url被構造成這樣的時候,就會觸發xss

  http://127.0.0.1/Test/CRLF%E6%B3%A8%E5%85%A5.php?url=http://baidu.com%0A%0D%0A%0D%3Cimg%20src=1%20onerror=alert(%271%27)%3E

  響應頭

  技術分享圖片

註意 

   在實際的情況中,瀏覽器有xss-filter的時候可以插入X-XSS-Protection:0關閉攔截功能。

   當後臺對url的輸入進行檢測的時候可以插入Content-Type: text/html;charset=utf-7,並把主體內容變為utf-7編碼。

   當想修改可控頭信息前面已被設置的頭信息時,可以直接在下一行修改,後面的會覆蓋前面的。

實例參考:v.shopify.com響應拆分 Twitter的HTTP響應拆分 https://www.cnblogs.com/wfzWebSecuity/p/6648767.html

CRLF註入學習