<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    CRLF 注入原理是什么?


    發現錯別字 1年前 提問
    回答
    1
    瀏覽
    356
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    回答數量: 1
    安全集成(專業級)SI/PL CISAW安全運維(專業級)

    CRLF注入又叫HTTP響應拆分/截斷(HTTP Response Splitting)簡稱HRS。HRS漏洞存在的前提是 :url當中輸入的字符會影響到文件,比如在重定位當中可以嘗試使用%0d%0a作為CRLF。一般網站會在HTTP頭中加上Location: http://baidu.com的方式來進行302跳轉,所以我們能控制的內容就是Location:后面的XXX網址,對這個地址進行污染。

    假設服務端(PHP)的處理方式:

    if($_COOKIE("security_level") == 1)
    {
        header("Location: ". $_GET['url']);
        exit;
    }
    

    代碼意思是說當條件滿足時,將請求包中的url參數值拼接到Location字符串中,并設置成響應頭發送給客戶端。

    此時服務器端接收到的url參數值是我們修改后的:

    http://baidu.com/xxx%0a%0dSet-Cookie: test123=123

    在url參數值拼接到Location字符串中,設置成響應頭后,響應頭就會看到:

    Set-Cookie: test123=123

    要避免http響應截斷,需要注意以下幾點:

    • 對用戶的數據進行合法性校驗,對特殊的字符進行編碼,如<、>、’、”、CR、LF等,限制用戶輸入的CR和LF,或者對CR和LF字符正確編碼后再輸出,以防止注入自定義HTTP頭。

    • 創建安全字符白名單,只接受白名單中的字符出現在HTTP響應頭文件中。

    • 在將數據傳送到http響應頭之前,刪除所有的換行符。

    回答所涉及的環境:聯想天逸510S、Windows 10。

    1年前 / 評論
    亚洲 欧美 自拍 唯美 另类