- 论坛徽章:
- 0
|
URL的欺骗
URL结构 \r\n我们来仔细看看URLs和与其有关的安全含义。一种“有趣”的URL利用方式已被垃 \r\n圾广告投递者发现很长时间了,不过现在“KB”(Knowledge Base)欺骗和二月发 \r\n表于Crypto-Gram的文章,已经使得URL可以做更多的事。 \r\n虽然大部分Internet用户把WWW地址或FTP同URLs联系起来,但Uniform Resource \r\nLocators(URL,统一资源定位器)使用的更普遍一些。URLs的标准在RFC1738中规 \r\n定,其中最普通的形式定义为: \r\n: \r\n部分是网络协议名称,部分被定义为: \r\n//:/ \r\n其中只有部分是必须的。\":\"和\"@\"字符具有特殊的含义,从而服务器可以解 \r\n析完整的字符串.如果用户名和密码包含在URL中,部分只是从\"@\"字符后开始 \r\n.看看在KB欺骗论及的例子: http://www.microsoft.com&item=q209354@www. \r\nhwnd.net/pub/mskb/Q209354.asp \r\n其中真正的主机是\"www.hwnd.net\".\"www.microsoft.com\"在这个URL中不过是个假 \r\n的用户名,服务器会忽略它. \r\n信任 \r\n虽然上面的例子是合乎语法的,但是却可能引起同安全相关的问题.在Internet节点 \r\n的终端,不是网卡、Modems或计算机,而是人.他们有意识或无意识都应该考虑到屏 \r\n幕上出现的东西是否值得信任. \r\n信任是最基本的安全评价.像上面例子那样的带有欺骗性的URL,利用了我们对常识 \r\n中URLs格式的信任.这种欺骗还利用了我们把主要注意力都集中到主要内容而不是 \r\nURL地址(虽然有时URL可以帮助我们判断可信度)这个事实.SSL保护的站点,把一部 \r\n分对可信度的判断工作交给浏览器,浏览器会比较带有SSL认证信息的域;另一方面 \r\n,如果目的主机是虚构的,那么仅仅依靠加密技术并不能提供太多有用的评价. \r\n隐藏 \r\n上面关于URL的分析只是简单的隐藏了它的真实目的地.我们可以用更好的方法来进 \r\n行隐藏.由于某些原因(有可能是内部处理引起的),有的操作系统对IP地址的操作并 \r\n不是通过我们常用的格式,就象是:aaa.bbb.ccc.ddd,而是相应的十进制数. \r\n上面这类地址可以改写成十进制的值:aaa*256^3+bbb*256^2+cccc*256+ddd.这样, \r\n3633633987就是216.148.218.195(属于www.redhat.com红帽子公司).你可以在浏览 \r\n器中输入3633633987,你会发现你已经来到了REDHAT公司的网站上.上面的操作可以 \r\n使用IE5.X或者是Linux下的Lynx,但并没对其他操作系统进行测试,可能会相差很多 \r\n.一些软件会对你的输入提示\"非法的URLs\",但你只要用很少的软件(包括常用的工 \r\n具,如ping)进行测试,你就可以判断出这个操作系统是否支持这种URLs的使用方式. \r\n如果该操作系统支持这种使用,那么就可以通过构造如下的URL来制造更大的迷惑: \r\nhttp://www.toronto.comntario@3633633987/,这个URL仍然指到REDHAT.因为很 \r\n多的网站都把HTTP的SessionID存在URL中,来代替使用Cookie,所以Internet使用者 \r\n并不会注意URL中的数字值,这样上面构造的URL不会带来任何怀疑.密码部分可以省 \r\n略,这样http://www.toronto.com@3633633987/的迷惑性更强. \r\n现在,我们可以使用一些HTTP知识:anchor(锚)标记允许显示的文本指到一个不是文 \r\n本本身的连接上,这样我们可以把连接写成http://www.toronto.com,然后把连接的 \r\n文字设成锚,再把这个锚连接到http://www.toronto.com@3633633987/上,是不是很 \r\n危险,如果你点击这个连接,依旧会把你带到REDHAT公司. \r\n另一个对信任的利用是可信站点的间接寻址提供的.很多知名网站通过如下格式的 \r\n连接来记录引导访问者来此的网址:\"http://www.thisisarespectablesite. \r\ncom/outsidelinks/http://externalsite\",在服务器端捕获请求信息后,再把用户 \r\n重定向到目标网站上. \r\n这就使任何人都可以使用这种间接寻址服务,通过与URL困惑组合使用,给欺诈性的 \r\nURLs提供更多的合法性.可以限制HTTP提交区域的输入值,来避免非法的输入,但很 \r\n少有网站这么做. \r\n如果你觉着以上说的还不够,哪你还可以利用Unicode编码,把真实目的URL通过 \r\nUnicode码写出,再解析时会还原成真实目的. \r\n上面的这些对于\"知识渊博\"的垃圾广告制造者来说都不是新东西,但对于用来攻击 \r\n一般不会起疑的用户来说,还是非常有用的. \r\nOne-click 攻击 \r\n下面,我们对URL安全问题进一步讨论. \r\n很多\"标准\"的攻击都可以从缓冲区溢出开始,但是现在这种溢出却不好找到.那么, \r\n我们怎么办呢? \r\n在注册表中,有如下的键值: \r\nHKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\PROTOCOLS\\Handler,在 \r\nHKEY_CLASSES_ROOT\\Shell下还有\"URL Protocol\"这个子键(你可以使用查找来搜索 \r\n这些键).其中你可以找到ftp://, http://, https://, mailto://, news://, \r\npnm://和其他协议.这里面有很多协议都是以前没见过的,比如msee://.通过快速的 \r\n试验,发现msee://是\"微软大百科\"使用的,可能是用来查阅内部文章用的.\"微软大 \r\n百科\"是否会引起缓冲区溢出呢,如果是,那么是否可以实际利用呢?这些都要进行更 \r\n深的研究. \r\nHKEY_LOCAL_MACHI阿瑟OFTWARE\\Classes\\PROTOCOLS\\Handler,在 \r\nHKEY_CLASSES_ROOT\\Shell下还有\"URL Protocol\"这个子键(你可以使用查找来搜索 \r\n这些键).其中你可以找到ftp://, http://, https://, mailto://, news://, \r\npnm://和其他协议.这里面有很多协议都是以前没见过的,比如msee://.通过快速的 \r\n试验,发现msee://是\"微软大百科\"使用的,可能是用来查阅内部文章用的.\"微软大 \r\n百科\"是否会引起缓冲区溢出呢,如果是,那么是否可以实际利用呢?这些都要进行更 \r\n深的研究. \r\n我们可以找到很多在安装软件时添加的URL构造(比如copernic://就是copernic搜 \r\n索工具生成的).另外,还可以使用脚本语言修改受害机注册表来添加我们的URL结构 \r\n,脚本语言可以用vbs编制,然后通过email发送过去,在然后.........你就可以使用 \r\n这个URL结构来引起缓冲区溢出了.虽然这看起来同URL联系不大,但多少还有些联系 \r\n,所以就一起说了. |
|