您好,登錄后才能下訂單哦!
本篇內容介紹了“html注入是什么意思”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
HTML注入是一種漏洞,一種網絡攻擊方式,當網頁無法清理用戶提供的輸入或驗證輸出時,攻擊者就可以偽造自己的有效負載,并通過易受攻擊的字段將惡意HTML代碼注入應用程序,從而修改網頁內容,甚至獲取一些敏感數據。
本教程操作環境:windows7系統、HTML5版、Dell G3電腦。
HTML注入(Hypertext Markup Language Injection)中文意思是“超文本標記性語言注入”,眾所周知HTML含有各種標簽,如果Web應用程序對用戶輸入的數據沒進行徹底的處理的話,那么一些非法用戶提交的數據可能含有HTML其他標簽,而這些數據又恰好被服務器當作正常的HTML標簽顯示,那么最終的結果是非法標簽被解析(可以應用于釣魚、社會工程學等),對其他用戶造成很大影響。
攻擊者可以偽造自己的有效負載,并通過易受攻擊的字段將惡意HTML代碼注入應用程序,從而修改網頁內容,甚至獲取一些敏感數據。
XSS(Cross-site Scripting)中文翻譯是“跨站腳本攻擊”,XSS本質上是HTML注入攻擊,但又不同于HTML注入,XSS利用腳本標記運行JavaScript等腳本程序,可以通過JavaScript獲取機密數據和一些列危險操作,而HTML注入只是使用HTML標簽修改頁面內容。
反射型HTML注入(GET方式)
First name填入< p style=“color:red”>html< /p>,Last name填入test,發現html字母變成紅色,說明我們寫入的html代碼成功執行了,此網站存在html注入。
反射型HTML注入(POST方式)
注:GET方式提交數據后瀏覽器地址欄會把提交的數據顯示出來,POST則不會顯示。
與上面GET方式一樣
Firstname填入
html2
,Last name填入test,發現html2字母變成綠色,說明我們寫入的html代碼成功執行了,此網站存在html注入。
反射型HTML注入(Current URL)
首先,我們分析下源碼
核心代碼
<div id="main"> <h2>HTML Injection - Reflected (URL)</h2> <?php echo "<p align=\"left\">Your current URL: <i>" . $url . "</i></p>";?> </div>
這段代碼中有一段PHP代碼,執行html語句,輸出一段“Your current URL:”字符,并調用$url變量,將輸出的內容跟在后面。
防護代碼
$url= ""; switch($_COOKIE["security_level"]) { case "0" : // $url = "http://" . $_SERVER["HTTP_HOST"] . urldecode($_SERVER["REQUEST_URI"]); $url = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; //$url= ''接受的參數來自請求頭HOST和URL break; case "1" : $url = "<script>document.write(document.URL)</script>"; break; case "2" : $url = "http://" . $_SERVER["HTTP_HOST"] . xss_check_3($_SERVER["REQUEST_URI"]); break; default : // $url = "http://" . $_SERVER["HTTP_HOST"] . urldecode($_SERVER["REQUEST_URI"]); $url = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; break; } <select name="security_level"> <option value="0">low</option> <option value="1">medium</option> <option value="2">high</option> </select>
閱讀防御代碼可以了解到根據設置的難度不通,調用的防御代碼也不同。
將等級設置為Low時,執行下面的語句
$url = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
這里的 $_SERVER[“HTTP_HOST”]表示獲取當前域名
這里的 $_SERVER[“REQUEST_URI”]”是獲取域名后面的完整的地址路徑
通過burp抓包修改host參數,可以發現頁面上發生了變化
將等級設置為medium時,執行下面的語句
$url = "<script>document.write(document.URL)</script>";
這里的document對象代表整個HTML文檔,可用來訪問頁面中的所有元素;
document.write()是動態向頁面寫入內容
document.URL是設置URL屬性從而在同一窗口打開另一頁面
將等級設置為high時,執行下面的語句
$url = "http://" . $_SERVER["HTTP_HOST"] . xss_check_3($_SERVER["REQUEST_URI"]);
這里調用了xss_check_3函數對host后面的部分進行了過濾處理,使得無法進行注入。
存儲型HTML注入
注:反射型頁面刷新后就不存在了,而存儲型是寫入了服務器數據庫,刷新后照樣存在。
因此,存儲型危害性大大大于反射型。
在文本域輸入<p style=”color:red”>HTML </p>即可成功解析p標簽,說明存在HTML注入。
“html注入是什么意思”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。