程序代碼:
<img src="sysimage://C:\WINNT\Notepad.exe,777"
onLoad="document.write(‘<b>Cannot Find File!</b>’);"
onError="document.write(‘<b>File Exists!</b>’);">
剛開始很奇怪這個sysimage://是個什么協議,于是在IE中打入:
sysimage://C:\WINNT\Explorer.exe
結果返回是個Explorer的圖標。而利用程序后面的777又表示了什么呢?
于是很習慣的又寫上sysimage://C:\WINNT\Explorer.exe,777,顯示IE返回該頁無法顯示
看來問題是出在這個777上了。既然是IE的本地文件存在探測漏洞,那么就是說這個777是一個構造的東西,那么我把777改成了2.結果返回了另外一個圖標。很顯然……這個777類似的數字是調用文件內部圖標號的東西,類似我們平時常見的desktop.ini中icon=somefile.exe,7這樣的東西,那么這段代碼就是說,如果一個文件中有定義了圖標存在,而且這個文件是的確存在的,那么IE就返回這個文件的第N個圖標(N是自己定義的,如果不定義,默認是第一個圖標),如果文件不存在,那么系統將會返回一個文件夾的圖標,所以這樣IE就出現了問題。
首先。我們可以讓IE返回一個圖標,如果正確,那么將返回這個程序的第N個圖標,如果不存在這個圖標,那么IE會有個ERROR,那么用ONERROR就能給出一個答案,而如果文件不存在的話,IE會返回一個文件夾的圖標,也就是說ONERROR不成立,那么就執行ONLOAD的事件。這樣就清楚了。呵呵。
至于如何利用,個人感覺利用價值不大。也許有的時候我們可以利用他結合其他的一些漏洞有目的性的返回一些東西……
比如:
sysimage://C:\Documents and Settings\Administrator\Cookies\administrator@icehack.com[1].txt
這樣的,也許再加點什么可做到COOKIE的跨站點獲取什么的。我也沒有繼續想下去了。
程序代碼:
<img src="sysimage://sysimage://C:\Documents and Settings\Administrator\Cookies\administrator@icehack.com[1].txt,777"
onLoad="document.write(‘<b>Cannot Find File!</b>’);"
onError="document.write(‘<b>這里寫上轉向到XXX跨站COOKIE截取程序b>’);">
文章來源于領測軟件測試網 http://www.kjueaiud.com/