当我们想要使用PHP进行QQ空间说说模拟发送时,在提交的URL中,我们会看到2个参数,其中一个就是Qzonetoken
链接如下:
https://user.qzone.qq.com/proxy/domain/taotao.qzone.qq.com/cgi-bin/emotion_cgi_publish_v6?qzonetoken=43056762050dbe39e22d4a84e549d67be7024dae6e1791ec223e5c389c4b3f07f99db9fd98c093be&g_tk=855649491

有了上面那两个黑黑的参数,说说才能发送出去(本篇文章只说明Qzonetoken的获取方式

首先,我们要知道这个参数是怎么生成的,是不是跟g_tk一样是js生成的呢?

。。。。。。(过程略)

经过一番寻找,发现这个参数是在html的源代码里

window.g_qzonetoken = (function(){ try{return "2400408cddd3602b526ce916f2b2931c984ef581d14a5f54d3c1369c2f44f04671260b8e0a5c84df";} catch(e) {var xhr = new XMLHttpRequest();xhr.withCredentials = true;xhr.open('post', '//h5.qzone.qq.com/log/post/error/qzonetoken', true);xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');xhr.send(e);}})();

每刷新一次页面该参数会生成一次,你可以在提交URL时,只使用一个qzonetoken,这样也可以发送出去,但仅仅只能一个QQ号使用,因此还是想想怎么获取吧。。

我们模拟发送说说,就需要带上对应的cookie。我通过枚举法得到了访问QQ空间所需要的cookie,分别是:skey,p_skey,uin
所以,我们在模拟发送说说时,先从QQ空间的html源代码中,将qzonetoken筛选出来,然后再进行模拟说说发送,这样就能成功了。

是不是感觉很草率。。但这个参数好像真的不是js生成的,所以只有这一种办法了。。如果有大佬了解,可以在评论区留言 (╯‵□′)╯︵┴─┴

附上php代码