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