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