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