问题在于天涯的手机版:
http://m.tianya.com
手机版的登录认证是靠url中三个参数来进行验证的:
http://m.tianya.cn/index. jsp ?idwriter=81847003&key=*********&chk=********************************
idwrite是用户的uid,key和chk是主要的认证字符串。
只要有这个url就能登录对应idwrite的用户了。
那么我们从哪能拿到这个url呢?这就是问题所在,下面看看我们如何获得到用户的则个url。
首先,我们发一个微博,里面带上一条url,让其他用户去访问这个url,只要有用户访问我们这个url,那么他就会被我们所劫持,也就是我们就拿到了这个url。
发送的这个微博中的url内容如下:
<?php $file = fopen("header.txt","w"); foreach (getallheaders() as $name => $value) { fwrite($file,"$name: $value\n"); echo "$name: $value\n"; } fclose($file); ?>
就是获取访问这个url的请求头,然后写入文件。
然后我们点击访问这个url看看什么效果:
url就被我们抓到了:
通过上面的过程看到了,我们主要是通过请求头里面的Referer获取到url的。
然后我们就可以那Referer的url登录这个用户了。
为了劫持其他用户,我们可以把这个url发到我们自己的空间,然后发布诱惑力很强的微博,诱使用户访问,或者通过私信发送到其他用户诱使用户访问这个url。
这样就可以劫持任意用户了。
修复方案: 非本域,就不要发送Referer啊
查看更多关于天涯某处设计缺陷可劫持用户账号及修复方案的详细内容...