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