Posted on 2011/03/08 by 余弦(@evilcos)http://evilcos.me/

referer指请求来源,很多网站通过这个来判断用户从哪个页面/网站过来的,referer是公开的,故不可在referer中存在与身份认证或者其他隐私相关的信息,可很多网站设计之初没考虑到referer的风险性,导致出现安全问题,有些可能现在没问题,但是以后随着业务发展,网站功能增多,安全问题就会出现,到时候想弥补,恐怕就要头疼了。

我列举几个场景:

1、手机浏览器上的Web世界

比如之前我在 xeye team上发的《renren wap身份认证缺陷》,还有刚刚G发给我的这个《新浪微博重大安全漏洞》

人人网的问题就是referer泄露身份认证信息(url里带的那串加密串),新浪微博这个虽然不是通过referer泄露,不过也同样是采用url传参的形式进行身份认证。另外,新浪微博与腾讯微博等都有个很好设计,就是使用shorturl服务来替换用户输出的链接地址,这样用户访问这些链接,就不会暴露微博域的referer信息,此时这些链接的referer指向shorturl。

2、一些网银

比如工行www.icbc.com.cn的网银,就是将身份认证信息直接嵌入url中,那个所谓的sid号,只要能获取到这个sid号,那么就等于获得了网银的权限,获取sid号有几种方式:

1、客户端木马形式(我没实践,猜测而已,不知道会遇到啥困难,但肯定是可以的)

2、局域网抓包(不过网银走的是ssl,这个很有难度)

3、XSS(我曾经利用工行的登陆口XSS去做这个事,失败,原因是每次访问这个登陆口,网银会话会自动销毁)

4、referer泄露(由于网银不存在用户交互的问题,referer泄露不容易,除非以后有这样的可能性,不过通过劫持网银的其他子域,也能得到这个referer,不多说)

3、Web黑盒渗透

渗透师们知道的,一些黑盒后台,不知道地址,不知道情况,一般第一步会使用HTML探针去得到这个referer地址或者top.location地址等,如果搞得,则继续下一步的渗透。这时的referer泄露的就是后台地址这类隐私信息。

还有一些其他场景。Web服务提供商们,看看自己的Web服务是不是忽视了这个referer,注意了。

转自:http://evilcos.me/?p=17