思路一:利用SKEY
登录QQ空间后,服务器会在客户端浏览器保存一个SKEY,每次浏览器访问qq.com 域下的网站时都会发送这个SKEY,服务器根据这个判断用户已经登录。如果拿到这个值,就可以假装是已经登录的用户。存在的未知,有待验证:
1.SKEY有效期
估计是一天
2.SKEY与IP是否绑定
应该有绑定
来看下面抓到的HTTP请求头:
GET / HTTP/1.1
Cookie: skey=@njGHHthuc; uin=o126******2;
Accept: image/jpeg, */*
Referer: qzone.qq.com
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: qz.qq.com
Cache-Control: no-cache
如果一切顺利,就会我们想要的页面。
利用的方法:获取Cookie中的SKEY
这个主要是利用XSS吧,参见:分享到QQ空间XSS可获取大量COOKIE当然这个已经不起作用了,但是可以用这个作为一种思路。
思路二:利用漏洞
要想确保安全,QQ空间中各个模块都要对用户登录情况进行验证,但是可能因为程序员在写的时候,什么时候就忘了这一点,没有进行验证,导致用户信息泄露。
1. 默认没有权限访问陌生人的空间和相册
2. 进入到自己的空间,在全部动态位置,如果有好友动态,点击一下,查看网络请求,其中有以下接口:
http://ic2.s21.qzone.qq.com/cgi-bin/feeds/feeds2_html_hotspot?uin=***(自己的QQ,需要保持登录)&visiteduin=***(经测试,可以为陌生人QQ)&count=10&alpha=1&useutf8=1&g_tk=***
3. 将2获取到的json解析,可以得到topicid和pickey
4. 在QQ空间还是全部动态位置,如果有好友发布了图片,点击查看图片,监控到一个接口:
http://app.photo.qq.com/cgi-bin/app/cgi_fl