CRLF註入學習
預備
<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註入學習