URL欺骗-安全加密

转载 2006年06月14日 15:55:00

   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://, mailt//, news://, pnm://和其他协议.这里面有很多协议都是以前没见过的,比如msee://.通过快速的试验,发现msee://是"微软大百科"使用的,可能是用来查阅内部文章用的."微软大百科"是否会引起缓冲区溢出呢,如果是,那么是否可以实际利用呢?这些都要进行更深的研究.

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

DES加密URL的案例

import java.security.*; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.c...
  • u013777676
  • u013777676
  • 2015年03月19日 10:03
  • 424

分享如何使用PHP将URL地址参数进行加密传输提高网站安全性

大家在使用PHP进行GET或POST提交数据时,经常会在URL带着参数进行传递,比如www.mdaima.com/get.php?id=1&page=5,这里就将id编号和page页码进行了参数传递,...
  • llf369477769
  • llf369477769
  • 2016年07月06日 11:35
  • 8738

ARP的欺骗原理和攻防

课程的论文,人比较懒,就挑了个简单的来写 《信息安全与攻击防范》课程论文 ——arp的欺骗原理和攻防  ARP协议是什么           ARP(Address Resolution Prot...
  • Moriarty_221
  • Moriarty_221
  • 2015年01月03日 21:49
  • 2038

通过服务器安全狗设置防护arp攻击

最近公司服务器大面积瘫痪 有的甚至无法远程 登陆服务器后之前安装的服务器安全狗报网关欺骗攻击 导致所有外网域名访问都无法打开 找到原因就开始着手解决问题 通过查看发现软件提供有arp防护,查看设置...
  • u013293478
  • u013293478
  • 2014年02月18日 10:00
  • 586

SSLstrip 中间人欺骗Https转Http获取密码

渗透回顾 SSLstrip + EtterCap 中间人攻击实现https转换成http 以获取帐号密码。 Linux环境下 我们使用iptables过滤一下数据包,然后用sslstrip...
  • WHACKW
  • WHACKW
  • 2015年10月26日 11:31
  • 824

PHP安全编程之关于表单欺骗提交

制造一个欺骗表单几乎与假造一个URL一样简单。毕竟,表单的提交只是浏览器发出的一个HTTP请求而已。请求的部分格式取决于表单,某些请求中的数据来自于用户。 大多数表单用一个相对URL地址来指定a...
  • nuli888
  • nuli888
  • 2016年08月10日 10:26
  • 549

node 利用crypto进行hash加密和URLSafeBase64处理 (node.js邮箱验证)

最近用node.js做注册邮箱验证时,用到urlBase64位字符串: //实现思路: //1、数据库表中添加一个激活的状态字段0或1 (0为未激活,1未激活),在添加一个验证码字段val...
  • PZ0605
  • PZ0605
  • 2015年08月13日 13:36
  • 2445

IP欺骗的原理

IP欺骗是在服务器不存在任何漏洞的情况下,通过利用TCP/IP协议本身存在的一些缺陷进行攻击的方法,这种方法具有一定的难度,需要掌握有关协议的工作原理和具体的实现方法。 IP地址欺骗是指行动产生的I...
  • gscaiyucheng
  • gscaiyucheng
  • 2014年03月26日 16:36
  • 2192

url中的参数加密

有时候我们需要在地址栏传输一些信息,比如查询数据的时候,传一个参数location.href = "/admin/extract?name="+"参数aaa"’但是我们直接这样传输会有一些问题,我们通...
  • qazwsx3322
  • qazwsx3322
  • 2017年04月17日 10:47
  • 2434

java安全之加密技术

加密方式对称加密算法只有一个密钥key进行加密解密,可以逆向加解密。1.凯撒密码古代有名的加密算法,将加密的数据进行一定的以为,属于对称加密,密钥key = 2(int 值)。这种加密非常简单,只需要...
  • itheimach
  • itheimach
  • 2016年08月02日 18:02
  • 1089
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:URL欺骗-安全加密
举报原因:
原因补充:

(最多只允许输入30个字)