<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    HTTP Parameter Pollution

    ABSTRACT

    如果在 URL 中加入未驗證的輸入,可能會讓攻擊者重寫請求參數的值。攻擊者可能會重寫現有的參數值、注入新的參數或利用直接得到的變量。

    EXPLANATION

    HTTP Parameter Pollution (HPP) 攻擊包含將編碼的查詢字符串分隔符注入其他現有的參數中。如果 Web 應用程序沒有正確地檢查用戶輸入,惡意用戶可能會破壞應用程序的邏輯,進行客戶端側或服務器側攻擊。如果再向 Web 應用程序提交參數,并且如果這些參數與現有參數的名稱相同,則 Web 應用程序可能會有下列一種反應

    它可能只從第一個參數中提取數據
    它可能從最后一個參數中提取數據
    它可能從所有參數中提取數據并把它們連接起來


    技術/HTTP 后端 總體解析結果 示例
    ASP.NET/IIS 所有出現特定參數的地方 par1=val1,val2
    ASP/IIS 所有出現特定參數的地方 par1=val1,val2
    PHP/Apache 最后出現的地方 par1=val2
    JSP,Servlet/Apache Tomcat 第一次出現的地方 par1=val1
    JSP,Servlet/Oracle
    Application Server 10g 第一次出現的地方 par1=val1
    IBM HTTP Server 第一次出現的地方 par1=val1
    mod_perl/Apache 變成陣列 ARRAY(0x8b9059c)


    例 1:根據應用程序服務器和應用程序自身的邏輯,下列請求可能造成與 authentication 系統的混淆,使攻擊者能模擬別的用戶。
    http://www.server.com/login.php?name=alice&name=hacker


    <%
    ...
    $id = $_GET["id"];
    header("Location:http://www.host.com/election.php?poll_id=" .$id);
    ...
    %>


    例 2:下列代碼使用來自于 HTTP 請求的輸入來呈現兩個超鏈接。
    URL: http://www.host.com/election.php?poll_id=4567
    鏈接 1: <a href="vote.php?poll_id=4567&candidate=white">Vote for Mr. White<a>
    鏈接 2: <a href="vote.php?poll_id=4567&candidate=green">Vote for Mrs. Green<a>

    由于程序員沒有考慮到攻擊者可能提供 poll_id(例如 "4567&candidate=green")的可能性,所以得到的頁面中將包含以下注入鏈接。因此,Green 女士將始終投票選擇撿出第一個參數的應用程序服務器。
    <a href="vote.php?poll_id=4567&candidate=green&candidate=white">Vote for Mr. White<a>
    <a href="vote.php?poll_id=4567&candidate=green&candidate=green">Vote for Mrs. Green<a>

    REFERENCES

    [1] Standards Mapping - OWASP Top 10 2010 - (OWASP 2010) A1 Injection

    [2] Standards Mapping - OWASP Top 10 2007 - (OWASP 2007) A2 Injection Flaws

    [3] Standards Mapping - OWASP Top 10 2004 - (OWASP 2004) A6 Injection Flaws

    [4] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 235

    [5] HTTP Parameter Pollution Luca Carettoni, Independent Researcher & Stefano Di Paola, MindedSecurity

    [6] HTTP Parameter Pollution Vulnerabilities in Web Applications Marco `embyte’ Balduzzi


    Copyright 2013 Fortify Software - All rights reserved.
    (Generated from version 2013.1.1.0008 of the Fortify Secure Coding Rulepacks)
    desc.dataflow.php.http_parameter_pollution

    97av