PHP-代码审计-XSS
生活随笔
收集整理的這篇文章主要介紹了
PHP-代码审计-XSS
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- XSS防御函數
- XSS挖掘流程
- 黑盒挖掘
- 白盒挖掘
- DVWA白盒挖掘演練
- 儲存型
- 反射型
- xss利用姿勢復習
XSS防御函數
htmlentities() 函數
把字符轉換為 HTML 實體:
XSS挖掘流程
黑盒挖掘
- 直接像滲透一樣挖掘即可,因為XSS通常是可以黑盒挖掘出來的
白盒挖掘
漏洞產生條件
- 用戶輸入參數:GET POST …
- 函數
- 輸入到輸出是否有過濾?
漏洞愛產生的位置
- 發文章處
- 回復評論處
- 用戶昵稱簽名處
- 注冊修改資料處
- …
DVWA白盒挖掘演練
儲存型
基本流程
- 尋找未過濾的輸入點,和未過濾的輸出函數
- 尋找最終輸出點
- 可以猜,或者老老實實哪里有操作過這個數據,使用表名,字段名去代碼里搜
- 觀察可能出現xss漏洞的目錄
-
尋找未過濾的輸入點,和未過濾的輸出函數
-
可以看到過濾不完整,只過濾了一個變量
-
并且向表guestbook中插入數據
-
所以該處存在漏洞
- 尋找最終的輸出點,因為最終的輸出點可能完全不在一個業務流上
- 所以我們可以使用表名,字段名,去代碼里搜索
- 圖中隨便打開一個
- 可以看到該位置最終輸出了用戶輸入的參數
- 看第二個框,他有條件的,如果安全級別為impossible,則都過濾一下
- 所以得出結論:我們一定要追蹤到最后的輸出點,否則你不知道他到底過濾沒
- 第三個框則是輸出到html里面了
所以我們可以根據條件,判斷,輸入到輸出到底過濾沒,到底用了什么過濾,是否可以用什么方法繞過,這比黑盒審計更方便,因為我們知道了過濾規則,直接上相應的方法即可
反射型
基本流程
- 尋找帶有未過濾的參數,且這些參數傳到輸出函數
- 根據輸出函數對輸出內容回溯輸入參數,觀察是否過濾
- 輸出函數列表: print,print_r, echo, printf, sprintf, die ,var_dump, var_export
初級
-
存在輸出函數echo
-
輸出函數中包含輸入參數,回溯
-
該函數參數輸入到輸出沒有任何過濾
中級
- 存在輸出函數echo
- 輸出函數中包含輸入參數,回溯
- 該函數參數輸入到輸出吧script過濾為空
- 但是可以用 其他標簽繞過,過濾不完整,如onclick
高級
- 存在輸出函數echo
- 輸出函數中包含輸入參數,回溯
- 該函數參數輸入到輸出用正則吧script和周圍過濾為空
- 但是可以用 其他標簽繞過,過濾不完整,如onclick
安全級別
- 輸出函數中包含輸入參數,回溯
- 該函數參數輸入到輸出 用htmlspecialchars實體化
- 安全
xss利用姿勢復習
利用姿勢
由于利用姿勢很多,這里只復習一下獲取cookies
獲取cookies
- 首先我們要獲取登陸后的頁面
- 將cookie攻擊語句的payload插入到存在xss漏洞的位置
寫一個接受cookie的平臺
- 獲取到cookie以后
- 使用firebug輸入cookie
- 然后再訪問登陸后的頁面就直接登陸上去了
總結
以上是生活随笔為你收集整理的PHP-代码审计-XSS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP-代码审计-ini配置文件
- 下一篇: PHP-代码审计-CSRF