URL欺骗

By Razvan Peteanu (razvan.peteanu@home.com) for SecurityPortal.com
Trans By F@tFox (fatfox@yesky.com)
翻译:fatfox
来源:绿色兵团bbs http://www.vertarmy.org/bbs/

URL结构

我们来仔细看看URLs和与其有关的安全含义。一种“有趣”的URL利用方式已被垃圾广告投递者发现很长时间了,不过现在“KB”(Knowledge Base)欺骗和二月发表于Crypto-Gram的文章,已经使得URL可以做更多的事。

虽然大部分Internet用户把WWW地址或FTP同URLs联系起来,但Uniform Resource Locators(URL,统一资源定位器)使用的更普遍一些。URLs的标准在RFC1738中规定,其中最普通的形式定义为:
:
部分是网络协议名称,部分被定义为:
//:@:/
其中只有部分是必须的。":"和"@"字符具有特殊的含义,从而服务器可以解析完整的字符串.如果用户名和密码包含在URL中,部分只是从"@"字符后开始.看看在KB欺骗论及的例子:
http://www.microsoft.com&item=q209354@www.hwnd.net/pub/mskb/Q209354.asp
其中真正的主机是"www.hwnd.net"."www.microsoft.com"在这个URL中不过是个假的用户名,服务器会忽略它.

虽然上面的例子是合乎语法的,但是却可能引起同安全相关的问题.在Internet节点的终端,不是网卡、Modems或计算机,而是人.他们有意识或无意识都应该考虑到屏幕上出现的东西是否值得信任.

信任是最基本的安全评价.像上面例子那样的带有欺骗性的URL,利用了我们对常识中URLs格式的信任.这种欺骗还利用了我们把主要注意力都集中到主要内容而不是URL地址(虽然有时URL可以帮助我们判断可信度)这个事实.SSL保护的站点,把一部分对可信度的判断工作交给浏览器,浏览器会比较带有SSL认证信息的域;另一方面,如果目的主机是虚构的,那么仅仅依靠加密技术并不能提供太多有用的评价.

隐藏

上面关于URL的分析只是简单的隐藏了它的真实目的地.我们可以用更好的方法来进行隐藏.由于某些原因(有可能是内部处理引起的),有的操作系统对IP地址的操作并不是通过我们常用的格式,就象是:aaa.bbb.ccc.ddd,而是相应的十进制数.

上面这类地址可以改写成十进制的值:aaa*256^3+bbb*256^2+cccc*256+ddd.这样,3633633987就是216.148.218.195(属于www.redhat.com红帽子公司).你可以在浏览器中输入3633633987,你会发现你已经来到了REDHAT公司的网站上.上面的操作可以使用IE5.X或者是Linux下的Lynx,但并没对其他操作系统进行测试,可能会相差很多.一些软件会对你的输入提示"非法的URLs",但你只要用很少的软件(包括常用的工具,如ping)进行测试,你就可以判断出这个操作系统是否支持这种URLs的使用方式.

如果该操作系统支持这种使用,那么就可以通过构造如下的URL来制造更大的迷惑:http://www.toronto.com:ontario@3633633987/,这个URL仍然指到REDHAT.因为很多的网站都把HTTP的SessionID存在URL中,来代替使用Cookie,所以Internet使用者并不会注意URL中的数字值,这样上面构造的URL不会带来任何怀疑.密码部分可以省略,这样http://www.toronto.com@3633633987/的迷惑性更强.

现在,我们可以使用一些HTTP知识:anchor(锚)标记允许显示的文本指到一个不是文本本身的连接上,这样我们可以把连接写成http://www.toronto.com,然后把连接的文字设成锚,再把这个锚连接到http://www.toronto.com@3633633987/上,是不是很危险,如果你点击这个连接,依旧会把你带到REDHAT公司.

另一个对信任的利用是可信站点的间接寻址提供的.很多知名网站通过如下格式的连接来记录引导访问者来此的网址:"http://www.thisisarespectablesite.com/outsidelinks/http://externalsite",在服务器端捕获请求信息后,再把用户重定向到目标网站上.

这就使任何人都可以使用这种间接寻址服务,通过与URL困惑组合使用,给欺诈性的URLs提供更多的合法性.可以限制HTTP提交区域的输入值,来避免非法的输入,但很少有网站这么做.

如果你觉着以上说的还不够,哪你还可以利用Unicode编码,把真实目的URL通过Unicode码写出,再解析时会还原成真实目的.

上面的这些对于"知识渊博"的垃圾广告制造者来说都不是新东西,但对于用来攻击一般不会起疑的用户来说,还是非常有用的.

One-click 攻击

下面,我们对URL安全问题进一步讨论.

很多"标准"的攻击都可以从缓冲区溢出开始,但是现在这种溢出却不好找到.那么,我们怎么办呢?

在注册表中,有如下的键值:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PROTOCOLS\Handler,在HKEY_CLASSES_ROOT\Shell下还有"URL Protocol"这个子键(你可以使用查找来搜索这些键).其中你可以找到ftp://, http://, https://, mailto://, news://, pnm://和其他协议.这里面有很多协议都是以前没见过的,比如msee://.通过快速的试验,发现msee://是"微软大百科"使用的,可能是用来查阅内部文章用的."微软大百科"是否会引起缓冲区溢出呢,如果是,那么是否可以实际利用呢?这些都要进行更深的研究.

我们可以找到很多在安装软件时添加的URL构造(比如copernic://就是copernic搜索工具生成的).另外,还可以使用脚本语言修改受害机注册表来添加我们的URL结构,脚本语言可以用vbs编制,然后通过email发送过去,在然后.........你就可以使用这个URL结构来引起缓冲区溢出了.虽然这看起来同URL联系不大,但多少还有些联系,所以就一起说了.

时间: 2024-09-10 00:46:07

URL欺骗的相关文章

关于网页代码加密解密保护

加密|解密|网页 文本代码保护是件很头痛的事,随着了解的加深保护的方法越多,也就意味着漏洞越多. [-调取原代码的方法-] 1:右键 - 查看原文件 2:查看 - 原文件 3:文件 - 另存为 4:IE缓存 5:还可以通过代码提取 教程代码: <SCRIPT> function add() { var ress=document.forms[0].it315zhangxx.value window.location="view-source:"+ress; } </S

asp.net教程:HTTP状态码200,301,302

跳转非常常用,在哪里都一样,这里的一些说明和用法也如此,不止适用于asp.net,其他语言也会用得到. 跳转非常常用,在哪里都一样,这里的一些说明和用法也如此,不止适用于asp.net,其他语言也会用得到.跳转的目的本来很简单,就是当用户或系统需要时从一个页面转向另一个页面,但自从有了各种各样的需求,还有那个什么SEO的东西之后,跳转被搞得极其复杂 跳转时的HTTP的状态码一般为200,301,302中的一个,下面先列出各状态码出现的情况,然后再解释各状态码有什么不同: 状态码200的跳转: 1

网页跳转代码简介

网页跳转的目的本来很简单,就是当用户或系统需要时从一个页面转向另一个页面,跳转时的HTTP的状态码一般为200,301,302中的一个,下面先列出各状态码出现的情况,然后再解释各状态码有什么不同: 200 正常状态,未发生任何事,普通页面浏览一般都是200  301 永久性转移(Permanently Moved),SEO必用的招式,会把旧页面的PR等信息转移到新页面  302 暂时性转移(Temporarily Moved),很常用的招式,也是SEO最容易被判作弊的方式  状态码200的跳转:

同形异义:最狡猾的钓鱼攻击

本文讲的是 同形异义:最狡猾的钓鱼攻击,网络钓鱼能让坚定的技术拥趸抓狂.一次错误点击,可能就是几千万的金钱损失,或者造成公司数据泄露.而且,网络钓鱼进化频繁. 最近出现的一个例子就是,狡猾的新漏洞利用程序,可以让恶意网络钓鱼网站具备与已知可信网站一模一样的URL. 现在大家都知道要检查浏览器地址栏的绿色小锁头,看看是否启用了TLS加密.看到这个小锁头,你就知道没人能窃听你提交的任何数据了--这对金融和医疗网站而言是一个特别重要的考量.但是,能够冒充合法URL并绘制小锁头的恶意网站,就几乎不会给出

中国网络安全大会上,《网络安全法》起草者是如何解读这部法律的?

本文讲的是中国网络安全大会上,<网络安全法>起草者是如何解读这部法律的?,<网络安全法>生效两周后,北京国家会议中心,正气氛热烈地举行一场安全大会. 中国网络安全大会(NSC2017),由国家相关部委指导,赛可达实验室联合国内外多家具有影响力的行业协会.机构等单位共同主办,今年已经是第五届. 早上九点,北京的天空淅淅沥沥地下着雨,但并不影响观众的热情.嘶吼编辑准点抵达现场时,会场里已经大半坐好了,再过一会,会场快要满席,主持人上台致辞,大会便开始了. NSC2017是<网络安

ASP.NET中的跳转 200, 301, 302转向实现代码_实用技巧

跳转时的HTTP的状态码一般为200,301,302中的一个,下面先列出各状态码出现的情况,然后再解释各状态码有什么不同: 状态码200的跳转: 1. <meta http-equiv="refresh" content="3; URL=default.aspx" /> 2. Server.Transfer("default.aspx"); 3. URLRewrite--严格来说,这个不算是跳转,只是一种URL"欺骗&quo

Chrome 54 终结 YouTube 的 Flash 内嵌技术

谷歌已经启动了Chrome 54项目.最新发布的版本进一步地边缘化Flash,转而使用HTML5在浏览器里内嵌YouTube视频,同时包含了大量问题修复和功能改进. 谷歌移除Flash的工作已经进行了一段时间,发布的多个更新强化了用户和开发者对HTML5的使用体验. YouTube从2015年1月份开始使用HTML5作为默认的视频内嵌技术,谷歌在去年改变了Chromium处理网站Flash的方式. 从Chrome 45开始,浏览器在运行最重要的内容并暂停其它Flash内容之前会先检测网页中是否包

解析cookie欺骗实现过程及具体应用

cookie|过程     正如我们所知道的,在网络词汇中,cookie是一个特殊的信息,虽然只是服务器存于用户计算机上的一个文本文件,但由于其内容的不寻常性(与服务器有一定的互交性,且常会存储用户名,甚至口令,或是其它一些敏感信息,例如在江湖或是一些社区中,常会用cookie来保存用户集分,等级等等).因而成为一些高手关注的对像,借此来取得特殊权限,甚至攻克整个网站.本人出些拙作,以java script中对cookie的应用,来说初步说明cookie欺骗的实现过程及具体应用. 一.cooki

COOKIE欺骗

来源:http://sunviva.yeah.net 现在有很多社区网为了方便网友浏览,都使用了cookie技术以避免多次输入密码(就如the9和vr),所以只要对服务器递交给用户的cookie进行改写就可以达到欺骗服务程序的目的. COOKIE欺骗原理 按照浏览器的约定,只有来自同一域名的cookie才可以读写,而cookie只是浏览器的,对通讯协议无影响,所以要进行cookie欺骗可以有多种途径: 1.跳过浏览器,直接对通讯数据改写 2.修改浏览器,让浏览器从本地可以读写任意域名cookie