xss漏洞發生在前端,攻擊的是瀏覽器的決議引擎
xss就是讓攻擊者的javascript代碼在受害者的瀏覽器上執行
xss攻擊者的目的就是尋找具有xss漏洞的網頁,讓受害者在不知情的情況下,在有xss漏洞的網頁上執行攻擊者的js代碼
xss是提前埋伏好漏洞陷阱,等著受害者上鉤,
既然攻擊者是執行javascript代碼,所以攻擊的陳述句應該能讓javascript運行,
javascript運行條件:"<script></script>"標簽中,onclick=事件屬性中
xss的攻擊payload一定滿足上述條件
xss學習主要是以測驗看到效果為主,通常的明顯效果就是使用alert彈個框,彈框意味著我們的js執行了,
xss攻擊,一定牢記“輸入輸出”,輸入指的是攻擊者對服務器網頁輸入惡意代碼,輸出指的是瀏覽器接收到代碼后能決議并輸出到前端,
xss的原理就是開發者沒有對輸入內容進行過濾,導致通過攻擊者精心構造的前端代碼,輸入后和原有的前端代碼產生混淆,形成新的頁面陳述句,并且新的頁面陳述句能被瀏覽器決議并輸出,
xss測驗步驟:
1、找到輸入點,隨便亂輸,輸完字符后,查看輸出,
2、打開網頁源代碼,在源代碼中查看輸出的位置,
3、以testxss.php為例
輸入內容:abcd
輸出的位置:<input type="text" value="https://www.cnblogs.com/gx991010/p/abcd">
我們的目的是進行xss攻擊,執行js代碼,執行js代碼的條件是要有script標簽或事件屬性,
<script>alert(1)</script> 這個是一定能在頁面上執行彈警告框的
如果我們直接輸入上述代碼,會變成:
<input type="text" value="https://www.cnblogs.com/gx991010/p/<script>alert(1)</script>"> 這個并不符合html的語法
為了使alert可以執行,就需要把上面的內容變換一下:
<input type="text" value=""><script>alert(1)</script>"> 變成這樣的話,就是input和script兩個標簽都能執行
因此,我們的輸入就變成
"><script>alert(1)</script>
那此時瀏覽器在決議的時候,就會決議出兩個元素,一個是input,一個是script,從而執行了我們在script中的js代碼,完成了xss攻擊
要使用事件屬性觸發:
<img src=https://www.cnblogs.com/gx991010/p/1 onclick="alert(1)">
payload1:"><img src=https://www.cnblogs.com/gx991010/p/1 onclick="alert(1)">
payload2: " onclick="alert(1)
反射型XSS
我們構造好一個urlxss的payload,發送給受害者,受害者點擊惡意鏈接后會在受害者的瀏覽器上執行惡意代碼,反射型xss是一次性的,而且比較容易被發現,通常惡意連接會被修改成短鏈接,或釣魚圖片的形式,
存盤型xss
存盤型又叫永久性xss,常見于留言板,因為存盤型xss的頁面會將用戶輸入的內容存入到資料庫內,所以當其他人每訪問一次的時候,服務器都會從資料庫將攻擊者輸入的內容調取到前端瀏覽器決議,因此每一次訪問就相當于一次xss攻擊,
以dvwa靶場中的存盤型xss為例:xss(stored)
這是一個留言板,攻擊者輸入的惡意代碼被存入資料庫,當其他受害者訪問該留言板的時候,后臺就會把資料庫的惡意代碼調取到前端可以被決議的位置,自然每一次訪問都會中招,
DOM型xss
不與服務器互動,本質上也是一種反射型xss,主要利用js使用dom對前端html進行操作時候產生的漏洞,DOM型xss的難點就在于通過閱讀javascript來確定輸出的位置,才好構建輸入的payload,
DOM型XSS可通過開發者工具觀察js變化
實戰中如何利用xss呢?
通過xss獲取受害者cookie資訊,
條件:
1、有一個xss漏洞頁面;
2、攻擊者需要一個xss資訊接收平臺
實驗目的:獲取受害者cookie,并以受害者的身份瀏覽網站,
實驗工具:攻擊者接收xss平臺:192.168.100.1 攻擊者賬號:gordonb/abc123
服務器:裝有dvwa的網站 192.168.100.200 受害者賬號: admin/password
實驗程序:攻擊者gordonb在目標網站上設下xss陷阱,當受害者中坑后會把cookie資訊發給攻擊者,攻擊者就用受害者的cookie訪問網站,
XSS常用測驗陳述句:
<script>alert(1)</script>
<img src=https://www.cnblogs.com/gx991010/p/1 one rror=alert(1)>
<svg onl oad=alert(1)>
<a href=javascript:alert(1)>
<input onfocus=write(1) autofocus>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/5093.html
標籤:其他
上一篇:SQLMAP常見用法
下一篇:xss防御
