如何找到可以利用的輸入點(diǎn)?
這不是一篇介紹技術(shù)的文章,只是一種開放思維的嘗試。主要著重于當(dāng)遇到輸入過濾的情況下,如何找到可以利用的輸入點(diǎn)。
本質(zhì)上來說如果要進(jìn)行xss攻擊,只要找到一個未過濾的輸入點(diǎn)。輸入的數(shù)據(jù)在支持腳本的軟件(不僅限于瀏覽器)里解析就可以了。sqli也是類似的道理。而輸入點(diǎn)并不僅僅是網(wǎng)頁里的表單,只要去發(fā)現(xiàn),輸入點(diǎn)無處不在。下面介紹一些拋磚引玉的想法,也歡迎大家分享自己的思路。
user agent 字段
不僅僅是useragent字段,還包括頭部的其他字段。比如把useragent改成
"<script>window.location = "http://www.freebuf.com/"</script>"
很多日志分析工具都是生成html格式的報告,如果這個字段沒有合適的過濾編碼就輸出在html里,管理員查看的時候就會執(zhí)行插入的js了。Splunk就曾經(jīng)出過因?yàn)閷eferer字段沒有過濾導(dǎo)致的xss漏洞。
SSIDs
這只是一個假想的攻擊方式,SSIDs可以有32個字符甚至可以包含不能打印的ASCII,SSID可能出現(xiàn)在某些記錄wifi連接記錄的日志里。
事件日志
很多人分析日志都會用第三方的日志查看工具。如果我們用
<script>alert("XSS");</script>
作為用戶名嘗試登陸,登陸失敗后會記錄在日志中。第三方工具如果沒有合適的過濾編碼字符串,管理員查看工具生成的html格式的報告時就可能受到xss攻擊。
計算機(jī)名和描述
這個場景我在Softperfect’s NetScan實(shí)踐過。在這里插入xss代碼,當(dāng)滲透測試人員查看掃描報告的時候。。。。。
應(yīng)用的名字和元數(shù)據(jù)
一些管理軟件會列出來電腦上安裝的軟件信息,如果是用html來實(shí)現(xiàn)。。。
Banners
大多網(wǎng)絡(luò)掃描器都可以識別banner,而且可以輸出多種格式,html,xml等。