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

    Value Shadowing

    ABSTRACT

    程序以不明確的方式訪問變量,這會導致它易受攻擊。

    EXPLANATION

    HttpRequest 類以數組訪問形式(如 Request["myParam"])從 QueryStringFormCookiesServerVariables 集合提供對變量的程序訪問。當多個變量具有相同的名稱時,.NET 框架將返回按以下順序搜索集合時首先顯示的變量的值:QueryStringFormCookies,然后是 ServerVariables。因為 QueryString 首先出現在搜索順序中,所以 QueryString 參數可以取代來自表單、cookie 和服務器變量的值。同樣,表單值可以取代 CookiesServerVariables 集合中的變量,來自 Cookies 集合的變量可以取代來自 ServerVariables 的變量。


    例 1:假設某個銀行應用程序將用戶的電子郵件地址臨時存儲在 cookie 中,并在需要聯系該用戶時讀取該值。以下代碼將讀取 cookie 值,并將帳戶余額發送到指定的電子郵件地址。


    ...
    String toAddress = Request["email"]; //Expects cookie value
    Double balance = GetBalance(userID);
    SendAccountBalance(toAddress, balance);
    ...

    假設在訪問 http://www.example.com/GetBalance.aspx 時執行上述代碼。如果攻擊者能夠使認證用戶單擊請求 http://www.example.com/GetBalance.aspx?email=evil%40evil.com 的鏈接,那么包含該用戶的帳戶余額的電子郵件將被發送到 evil@evil.com


    Copyright 2013 Fortify Software - All rights reserved.
    (Generated from version 2013.1.1.0008 of the Fortify Secure Coding Rulepacks)
    desc.semantic.dotnet.value_shadowing

    97av