关于ie本地文件存在性 探测

本文分析了IE本地文件存在性探测漏洞。通过在IE中输入sysimage://协议相关内容进行测试,发现类似777的数字是调用文件内部图标号的东西。若文件存在且有图标定义,IE返回文件第N个图标;若不存在则返回文件夹图标。还提及可结合此漏洞有目的性返回内容,如获取COOKIE。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用方法如下
程序代码:

<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>');"> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值