## 一、XSS的測試技巧和工具:
### 測試方法
1. 工具掃描:APPscan、awvs、burpsuite、XSSER XSSF
2. 手動測試:Burpsuite、firefox(hackbar)
1)在目標站點上找到輸入點,比如查詢接口,留言板等;
2)輸入一組"特殊字符+唯一識別字符",點擊提交后,查看返回的源碼,是否有做對應的處理;
3)通過搜索定位到唯一字符,結合唯一字符前后語法確認是否可以構造執行js的條件(構造閉合);提交構造的腳本代碼,看是否可以成功執行,如果成功執行則說明存在XSS漏洞;
**第一種情況:可得知輸出位置**
輸入一些敏感字符,例如、"、'、()等等,在提交請求后去查看HTML源代碼,看這些輸入的字符是否被轉義。
在輸出這些敏感字符的時候,很有可能程序已經做過了過濾,那么你在尋找這些字符的時候就不是那么容易了,這時候你可以直接輸入`XXSER<>"'&`,然后在查找源代碼的時候直接進行查找XXSER或許比較方便一些。
**第二種情況:無法得知輸出位置**
非常多的Web應用程序源代碼是不對外開放的,這時在進行測試XSS時就有可能無法得知輸入數據到底在何處顯示,比如測試某留言本是否存在XSS,那么在留言之后,你必須要經過管理員的審核才能進行顯示,這時你是無法得知,你輸入的數據在后臺管理頁面處于何種狀態。
### 萬能XSS漏洞payload
~~~
"/></textarea><script>alert(1)</script>
~~~
**三種彈窗函數**
僅彈窗:alart
彈輸入框:prompt
彈是否:confirm
### XSS輔助工具
1. beef:https://beefproject.com/
一個xss攻擊框架,參考https://www.freebuf.com/articles/web/175755.html
2. xssor:http://xssor.io
免費的JavaScript在線入侵工具
3. xss平臺:
在線的xss平臺,有很多,自行搜索
4. ie tester:http://www.ietester.cn/
可以模擬測試各種版本的老IE瀏覽器
## 二、三種xss實戰
### A、 存儲型xss實戰
1. 存儲型xss原理
攻擊者在頁面上插入xss代碼,服務端將數據插入數據庫,當用戶訪問到xss漏洞的頁面時,服務端從數據庫中取出數據展示到頁面上,導致xss代碼執行,達到攻擊效果
2. 可能存在存儲型xss的功能點
在頁面上所有可以輸入并保存數據的地方,都可以嘗試使用xss代碼進行測試
3. 存儲型xss漏洞的挖掘方法
嘗試在輸入的內容中加入如下字段,如果保存后的頁面,打開彈出提示xss提示框,就表示有xss漏洞
```
<img scr=x onerror=alert(1)>
```
4. 存儲型xss部分場景修復
使用過濾函數,過濾輸入內容中的html標簽等
### B、反射型xss
1. 反射型xss原理
攻擊者在url中插入xss代碼,服務端將url中的xss代碼輸出到頁面上,攻擊者將帶有xss代碼的url,想辦法欺騙用戶點擊,用戶打開后收到xss攻擊
2. 可能存在反射型xss的功能
url地址中帶有參數的網頁,是重點關注的區域、頁面的搜索框是重中之重
3. 反射型xss漏洞挖掘方法
以某頁面的搜索功能為例,在搜索框中輸入任意字符,如“aaaaa”,然后在瀏覽器源碼中搜索輸入的 關鍵字,找到關鍵字所在的標簽,使用閉合標簽的方式閉合掉標簽,并插入xss代碼,看是否會有xss漏洞,如:
```html
url=xxxx/search.html?ks=aaaa
關鍵字在title中,如<title>aaaa</title>,可以將url如下閉合并測試xss
url=xxxx/search.html?ks=aaaa</title><script>alert(1)</script>
關鍵字在imput中,如<input placeholder="搜索" type="texg" name="ks" value="aaaa">,可以如下閉合
url=xxxx/search.html?ks=aaaa"<script>alert(1);</script>
```
4. 反射型xss部分場景的修復
使用函數轉義輸入內容中的html代碼
### C、DOM型xss
攻擊者在url中插入xss代碼,前端頁面直接從url中獲取xss代碼輸出到頁面上,攻擊者將帶有xss代碼的url,想辦法欺騙用戶點擊,用戶打開后收到xss攻擊
其他和反射型類似(略)
## 三、XSS的防御策略:
* * *
**只要有輸入數據的地方,就可能存在 XSS 危險。永遠不相信用戶的輸入。需要對用戶的輸入進行處理,只允許輸入合法的值,其它值一概過濾掉。**
**XSS防御的總體思路是:** 對輸入進行過濾,對輸出進行編碼
1. httpOnly:在 cookie 中設置 HttpOnly 屬性后,js腳本將無法讀取到 cookie 信息。
2. 輸入過濾:一般是用于對于輸入格式的檢查,例如:郵箱,電話號碼,用戶名,密碼……等,按照規定的格式輸入。
不僅僅是前端負責,后端也要做相同的過濾檢查。因為攻擊者完全可以繞過正常的輸入流程,直接利用相關接口向服務器發送設置。
3. 轉義 HTML:如果拼接 HTML 是必要的,就需要對于url中的引號,尖括號,斜杠進行轉義,但這還不是很完善.想對 HTML 模板各處插入點進行充分的轉義,就需要采用合適的轉義庫。
例如:·htmlspecialchars()·函數把一些預定義的字符轉換為 HTML 實體
~~~
#預定義的字符是:
& (和號) 成為 &
" (雙引號) 成為 "
’ (單引號) 成為 '
< (小于) 成為 <
> (大于) 成為 >
~~~
4. 白名單:對于顯示富文本來說,不能通過上面的辦法來轉義所有字符,因為這樣會把需要的格式也過濾掉。
這種情況通常采用白名單過濾的辦法,當然也可以通過黑名單過濾,但是考慮到需要過濾的標簽和標簽屬性實在太多,更加推薦使用白名單的方式。
- src導航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查詢
- 備案信息查詢
- 信用信息查詢
- IP反查站點的站
- 瀏覽器插件
- 收集子域名信息
- 在線平臺
- 工具枚舉
- ssl與證書透明度
- DNS歷史解析
- DNS域傳送漏洞
- C段探測
- JS文件域名&ip探測
- 搜索引擎&情報社區
- google黑客
- 威脅情報
- 鐘馗之眼
- 收集相關應用信息
- 微信公眾號&微博
- APP收集&反編譯
- 收集常用端口信息
- 常見端口&解析&總結
- 掃描工具
- 網絡空間引擎搜索
- 瀏覽器插件
- nmap掃描
- 收集敏感信息
- 源碼泄露
- 郵箱信息收集
- 備份文件泄露
- 目錄&后臺掃描
- 公網網盤
- 歷史資產
- 指紋&WAF&CDN識別
- 指紋識別
- CDN識別
- 繞過CDN查找真實IP
- WAF識別
- 漏洞資源和社工
- 漏洞公共資源庫
- 社會工程
- 資產梳理
- 各種對滲透有幫助的平臺
- 掃描器
- 掃描器對比
- AppScan(IBM)_web和系統
- AWVS_web掃描
- X-Scan_系統掃描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_綠盟_web
- 安恒明鑒
- Nessus_系統
- nexpose_系統
- 啟明天鏡_web_系統
- SQL注入
- 常用函數
- sql注入步驟
- union注入和information_schema庫
- 函數和報錯注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解決方案
- Access數據庫注入
- MSSQL數據庫注入
- MYSQL數據庫注入
- 神器SQLmap
- xss跨站腳本攻擊
- xss原理和分類
- xss案例和修復
- xss繞過技巧
- xss案例
- 文件上傳下載包含
- 常有用文件路徑
- 文件上傳漏洞
- 文件下載漏洞
- 文件包含漏洞
- upload-labs上傳漏洞練習
- XXE、SSRF、CSRF
- SSRF原理基礎
- SSRF案例實戰
- CSRF原理基礎
- CSRF案例及防范
- XXE之XML_DTD基礎
- XXE之payload與修復
- XXE結合SSRF
- 遠程命令執行與反序列化
- 遠程命令和代碼執行漏洞
- 反序列化漏洞
- 驗證碼與暴力破解
- 爆破與驗證碼原理
- CS架構暴力破解
- BS架構暴力破解
- WEB編輯器漏洞
- 編輯器漏洞基礎
- Ewebeditor編輯器
- FCKeditor編輯器
- 其他編輯器
- web中間件漏洞
- 中間件解析漏洞
- Tomcat常見的漏洞總結
- Jboss漏洞利用總結
- Weblogic漏洞利用總結
- WEB具體步驟
- 旁注和越權
- CDN繞過
- 越權與邏輯漏洞
- WEB應用常見其他漏洞
- WEB登陸頁面滲透思路
- 獲取WEBshell思路
- 社工、釣魚、apt
- 社工和信息收集
- 域名欺騙
- 釣魚郵件
- 一些釣魚用的掛馬工具
- 代碼審計
- 代碼審計工具
- WAF繞過
- WAF基礎及云WAF
- 各種WAF繞過方法
- 繞過WAF上傳文件
- 系統提權
- windows系統提權
- linux系統提權
- 數據庫提權操作系統
- 內網橫向滲透
- 內網穿透方式
- 一些內網第三方應用提權
- ARP與DOS
- ARP欺騙
- DOS與DDOS
- 一些DOS工具