Web安全原理剖析(十四)——反射型XSS攻擊


4.3 反射型XSS攻擊

??頁面http://127.0.0.1/xss/xss1.php實現的功能是在“輸入”表單中輸入內容,單擊“提交”按鈕后,將輸入的內容放到“輸出”表單中,例如當輸入“11”,單擊“提交”按鈕時,“11”將被輸出到“輸出”表單中,效果如圖68所示。

圖68 輸入參數被輸出到頁面

??當訪問http://127.0.0.1/xss/xss1.php?xss_input_value="><img src=1 onerror="alert(/xss/)"/>時,輸出到頁面的HTML代碼變?yōu)?lt;input type="text" value=""><img src=1 onerror="alert(/xss/)"/>">,可以看到,輸入的雙引號閉合了value屬性的雙引號,輸入的>閉合了input標簽的<,導致輸入的<img src =1 onerror="alert(/xss/)"/>變成了HTML標簽,如圖69所示。


圖69 輸入XSS代碼

??接下來,在瀏覽器顯然時,執(zhí)行了<img src =1 onerror="alert(/xss/)"/>,JS函數alert()導致瀏覽器彈窗,顯示“/xss/”,如圖70所示。


圖67 瀏覽器執(zhí)行了XSS代碼

4.4 反射型XSS代碼分析

??在反射型XSS PHP代碼中,通過GET獲取參數xss_input_value的值,然后通過echo輸出一個input標簽,并將xss_input_value的值放入input標簽的value中。當訪問xss_input_value="><img src=1 onerror=alert(/xss/)/>時,輸出到頁面的HTML代碼變?yōu)?lt;input type="text" value=""><img src=1 onerror="alert(/xss/)"/>">,此段HTML代碼有兩個標簽,<input>標簽和<img>標簽,而<img>標簽的作用久石讓瀏覽器彈框顯示“/xss/”,代碼入下所示。

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>XSS利用輸出的環(huán)境來構造代碼</title>
</head>
<body>
    <center>
    <h6>把我們輸入的字符串 輸出到input里的value屬性里</h6>
    <form action="" method="get">
        <h6>請輸入你想顯現的字符串</h6>
        <input type="text" name="xss_input_value" value="輸入"><br />
        <input type="submit">
    </form>
    <hr>
    <?php
        if (isset($_GET['xss_input_value']))
        {
            echo '<input type="text" value="'.$_GET['xss_input_value'].'">';
        }
        else
        {
            echo '<input type="text" value="輸出">';
        }
    ?>
    </center>
</body>
</html>

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容