新聞中心
本篇內容介紹了“html注入是什么意思”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供尋烏企業(yè)網站建設,專注與成都網站建設、網站設計、H5頁面制作、小程序制作等業(yè)務。10年已為尋烏眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
HTML注入是一種漏洞,一種網絡攻擊方式,當網頁無法清理用戶提供的輸入或驗證輸出時,攻擊者就可以偽造自己的有效負載,并通過易受攻擊的字段將惡意HTML代碼注入應用程序,從而修改網頁內容,甚至獲取一些敏感數據。
本教程操作環(huán)境:windows7系統(tǒng)、HTML5版、Dell G3電腦。
什么是HTML注入?
HTML注入(Hypertext Markup Language Injection)中文意思是“超文本標記性語言注入”,眾所周知HTML含有各種標簽,如果Web應用程序對用戶輸入的數據沒進行徹底的處理的話,那么一些非法用戶提交的數據可能含有HTML其他標簽,而這些數據又恰好被服務器當作正常的HTML標簽顯示,那么最終的結果是非法標簽被解析(可以應用于釣魚、社會工程學等),對其他用戶造成很大影響。
攻擊者可以偽造自己的有效負載,并通過易受攻擊的字段將惡意HTML代碼注入應用程序,從而修改網頁內容,甚至獲取一些敏感數據。
HTML注入與XSS的區(qū)別
XSS(Cross-site Scripting)中文翻譯是“跨站腳本攻擊”,XSS本質上是HTML注入攻擊,但又不同于HTML注入,XSS利用腳本標記運行JavaScript等腳本程序,可以通過JavaScript獲取機密數據和一些列危險操作,而HTML注入只是使用HTML標簽修改頁面內容。
HTML Injection - Reflected (GET)
反射型HTML注入(GET方式)
First name填入< p style=“color:red”>html< /p>,Last name填入test,發(fā)現(xiàn)html字母變成紅色,說明我們寫入的html代碼成功執(zhí)行了,此網站存在html注入。
HTML Injection - Reflected (POST)
反射型HTML注入(POST方式)
注:GET方式提交數據后瀏覽器地址欄會把提交的數據顯示出來,POST則不會顯示。
與上面GET方式一樣
Firstname填入
html2
,Last name填入test,發(fā)現(xiàn)html2字母變成綠色,說明我們寫入的html代碼成功執(zhí)行了,此網站存在html注入。
HTML Injection - Reflected (Current URL)
反射型HTML注入(Current URL)
首先,我們分析下源碼
核心代碼
HTML Injection - Reflected (URL)
Your current URL: " . $url . "";?>
這段代碼中有一段PHP代碼,執(zhí)行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 = ""; 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; }
閱讀防御代碼可以了解到根據設置的難度不通,調用的防御代碼也不同。
(1)LOW
將等級設置為Low時,執(zhí)行下面的語句
$url = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
這里的 $_SERVER[“HTTP_HOST”]表示獲取當前域名
這里的 $_SERVER[“REQUEST_URI”]”是獲取域名后面的完整的地址路徑
通過burp抓包修改host參數,可以發(fā)現(xiàn)頁面上發(fā)生了變化
(2)medium
將等級設置為medium時,執(zhí)行下面的語句
$url = "";
這里的document對象代表整個HTML文檔,可用來訪問頁面中的所有元素;
document.write()是動態(tài)向頁面寫入內容
document.URL是設置URL屬性從而在同一窗口打開另一頁面
(3)high
將等級設置為high時,執(zhí)行下面的語句
$url = "http://" . $_SERVER["HTTP_HOST"] . xss_check_3($_SERVER["REQUEST_URI"]);
這里調用了xss_check_3函數對host后面的部分進行了過濾處理,使得無法進行注入。
HTML Injection - Stored (Blog)
存儲型HTML注入
注:反射型頁面刷新后就不存在了,而存儲型是寫入了服務器數據庫,刷新后照樣存在。 HTML
因此,存儲型危害性大大大于反射型。
在文本域輸入
“html注入是什么意思”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網站,小編將為大家輸出更多高質量的實用文章!
當前題目:html注入是什么意思
本文URL:http://www.dlmjj.cn/article/jghcid.html