<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            Value Shadowing: Server Variable

            ABSTRACT

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

            EXPLANATION

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


            例 1:以下代碼將檢查 HTTP Referer 頭文件服務器變量,在對內容提供服務之前確定請求是否來自 www.example.com


            ...
            if (Request["HTTP_REFERER"].StartsWith("http://www.example.com"))
            ServeContent();
            else
            Response.Redirect("http://www.example.com/");
            ...


            假設在訪問 http://www.example.com/ProtectedImages.aspx 時執行上述代碼。如果攻擊者直接請求該 URL,那么不會設置相應的 referer 頭文件,并且請求將失敗。然而,如果攻擊者提交包含所需值的假冒 HTTP_REFERER 參數,如 http://www.example.com/ProtectedImages.aspx?HTTP_REFERER=http%3a%2f%2fwww.example.com,那么查找將從 QueryString 而不是 ServerVariables 返回值,而且檢查將成功。

            REFERENCES

            [1] Microsoft IIS Server Variables


            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_server_variable

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线