腾讯QQ空间作为腾讯的社交核心产品之一,在登陆的安全设置上没有用变态的技术,都是常规策略。可能是因为该产品内容上的价值对于用户而言重要,但是对于他人来说并不重要。
老规矩首先抓个包试试看看那登陆请求有哪些字段
u:2551513277@qq.com
verifycode:!NNT
pt_vcode_v1:0
pt_verifysession_v1:e02e02eecdb805b45ce122cde11c229d62be175396694ebe18c4f39b3491e5f7845b10c499d60bc42ad9ff81768d860401fbf1871932aacd
p:xeOyBOEajC3l2pBFTuB6EGzMpGaIMGpL5rOkK3s6qe3ExEc1QB8xZIojs2wFvNVIElBAAvEP5ap0kbLGmTDgkRWU0vPYTvM8mVbYpYcCsxc9DwJXbpIVNQk0a8R4fg4jdMiKKtvri4SsNXFjIgr5NMQb*3OaB06ynyg2Xd2jcEo0CxmUx-eoKSpSb6vzUbNrlJSuo1DtFHZDINXcGtnLxARgMy35Km7BzXrKgkNj2uuOoKD1aXd*Cx5pMpDxXbUtmTc1TAA5PI1qKUElnihIGeZ8M35F9r07dsB0M0D5a9T-QVXIBsYCr0N8ecUEkFCOC2zSZy0z1xsDMlyNdcBV9Q__
pt_randsalt:2
u1:https://qzs.qq.com/qzone/v5/loginsucc.html?para=izone
ptredirect:0
h:1
t:1
g:1
from_ui:1
ptlang:2052
action:3-19-1548851060420
js_ver:10291
js_type:1
login_sig:
pt_uistyle:40
aid:549000912
daid:5
粗略分析我们就知道哪些字段比较难搞了,u是用户名、verifycode是类似验证码的东西、pt_verifysession_v1类似id的字符串、p就应该是密码了。
我们分析的重点在verifycode、pt_verifysession_v1、P三个字段了,然后再看post请求之前的请求,发现了一个有价值的get请求:
返回如下:
ptui_checkVC('0','!NNT','\x00\x00\x00\x00\x98\x15\x00\xbd',
'e02e02eecdb805b45ce122cde11c229d62be175396694ebe18c4f39b3491e5f7845b10c499d60bc42ad9ff81768d860401fbf1871932aacd','2')
很好,这个get请求已经返回verifycode、pt_verifysession_v1参数,那我们需要重点分析的是password的加密方式了。再看这个请求的参数:
其中appid是来自html源码中的,那就是时候获得这两个参数并没有太大问题。
继续看password,查找发出该请求的相应js位置
if ("login" == t) {
i.u = encodeURIComponent(pt.plogin.at_account),
i.verifycode = $("verifycode").value,
pt.plogin.needShowNewVc ? i.p