当前位置:网站首页 > 更多 > 编程开发 > 正文

[Python] 如何在你神不知鬼不觉的情况下利用你QQ发送小广告,罪魁祸首竟是他,用python带你体验全过程。(二)

作者:CC下载站 日期:2020-06-03 00:00:00 浏览:53 分类:编程开发

2.3 伪装成用户发送说说

2.3.1 使用python发说说

  伪装发包呢,我们就直接用python盘他,那就这样开始吧。 首先呢,我们需要导入一个模块requests,用来帮助我们发包以及后期的骚操作。

importrequests


  然后就是设置三个参数,请求URL,请求头,表单数据,这些在上一节中以及分析过了,直接照搬照抄就行了,然后就是代码,

url='https://user.qzone.qq.com/proxy/domain/taotao.qzone.qq.com/cgi-bin/emotion_cgi_publish_v6?qzonetoken=79509429e2fcb1a2a144a81d05f276e0695b6c542b02be691eb7e50c3944ed46751c4d46c22bb589b4&g_tk=428053921'
headers={
'content-type':'application/x-www-form-urlencoded;charset=UTF-8',
'cookie':'qz_screen=1536x864;QZ_FE_WEBP_SUPPORT=1;__Q_w_s__QZN_TodoMsgCnt=1;Loading=Yes;RK=wEqZRhmiYM;ptcz=6ba4ad48c0993a9803b17b7cd71f402d78cc3a13ac6c8eaad6a2f3425ac813b0;logout_page=dm_loginpage;dm_login_weixin_rem=;pgv_pvi=2620835840;pgv_pvid=6287814200;pgv_info=ssid=s4061550260;pgv_si=s32916480;_qpsvr_localtk=0.044227743304393385;ptui_loginuin=2123432340;uin=o2123432340;[email protected];p_uin=o2123432340;pt4_token=W05iPjuHpiITZnV9DPyR0kdOEkKObZr4bJxhq7vd3Kc_;p_skey=GSHvtQxQPQcYWoUBhol-r8ZI2jlrN0uHE*W7Yl6ejkY_;2123432340_todaycount=0;2123432340_totalcount=7;cpu_performance_v8=4',
'origin':'https://user.qzone.qq.com',
'referer':'https://user.qzone.qq.com/2123432340',
'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/83.0.4103.61Safari/537.36',
}
data={
'syn_tweet_verson':'1',
'paramstr':'1',
'pic_template':'',
'richtype':'',
'richval':'',
'special_url':'',
'subrichtype':'',
'who':'1',
'con':'2020年6月2日18:24:57,伪造发说说测试!!!',
'feedversion':'1',
'ver':'1',
'ugc_right':'1',
'to_sign':'0',
'hostuin':'2123432340',
'code_version':'1',
'format':'fs',
'qzreferrer':'https://user.qzone.qq.com/2123432340',
}

  然后就是POST请求,这样写:

response=requests.post(url=url,headers=headers,data=data)


  然后为了展示效果,我们输出一下状态码以及返回内容。

print(response.text)
print(response.status_code)


然后就是代码跑起来!跑完之后可以看到,这里返回的状态码是200,说明请求正常。

返回到自己的空间,刷新一下,可以空间说说已经发送出去了,这样就实现了用python发说说的过程。

2.3.2 获取qzonetoken

  接下来的任务就是,分析qzonetoken和g_tk这两个值是怎么来的?首先第一个qzonetoken,现在回到浏览器,全局搜索一下qzonetoken,
  可以发现这里出现很多条包含qzonetoken的,这里我们再在qzonetoken后面加一个 =再进行搜索,因为我们要知道他是怎么来的,所以查他是怎么赋值的。
  哦吼,这样就只有一条信息了,然后点开看一下。然后这就是所谓的qzonetoken了,居然直接包含在网页代码中,所以到此就可以取得qzonetoken了,直接到时候解析html即可。

2.3.3 获取g_tk

  然后就是下一个值g_tk,然后在这搜索g_tk =,可以看到只有一条记录了,

  然后我看到了一个getToken(),我们来搜索一下这个方法

  然后就可以看到这个方法是这样子的(红框内为算法,箭头表示位置)

  到这里也就只能打个断点调试一下吧,

  然后就卡在这里了,我们来慢慢分析一下。

往上面翻一点就可以看到这串东西了。

defg_tk(t):
e=5381
foriinrange(len(t)):
e+=(e<<5)+ord(t[i])
returne&2147483647

看到这,我不禁想起了我中午才弄过的hash33,详情见:python实现hash33加密算法,长得似乎差不多呀。然后问题就来了,n是个啥,既然在调试,我们直接控制台输出一下就行了

getToken:function(){
try{
returntop.QZONE.FP.getACSRFToken()//尝试返回
}catch(a){
vare=5381//否则直接算
,t=n.get("p_skey")||n.get("skey")||n.get("rv2");
for(vari=0,r=t.length;i<r;++i){
e+=(e<<5)+t.charAt(i).charCodeAt()
}
returne&2147483647
}
},

  输出测试一下:

看,又出现了,他的neme是不是就是罪魁祸首cookie,这样的话t也就不难理解了,

t=n.get("p_skey")||n.get("skey")||n.get("rv2")

 就是取cookie里面的p_skey或者skey或者rv2,然后最后返回了一串数字,就是所谓的g_tk了,不信?我们来看下。

 然后呢,用python改写一下就是这样子的。

defg_tk(t):
e=5381
foriinrange(len(t)):
e+=(e<<5)+ord(t[i])
returne&2147483647

输出测试一下:

传入p_skey或者skey或者rv2就可以返回需要的g_tk了。

至此为止,我们就只需要获取到Cookie就可以为所欲为了,那么这时候可能就有人问了,Cookie怎么来呢,别人怎么知道我的Cookie呢?那就接着往下看吧!

2.4 怎么获取你的Cookie

  这个就有很多方式了,不过只要你注意的话还是可以防得住的,像我的cookie就从来没有泄露过。
  这不正愁不知道哪里找素材,这里就有人送上门来了,刚刚空间收到一条留言,是这样子的眼熟不。  我们将这个二维码转成网址,最终的结果是这样https://w.url.cn/s/ApUGGIq,然后这个是一个短网址,我们需要将他还原一下,  哎哟我去,又是一层短网址,这套娃玩的。。继续走你然后就找到了这个网站https://qdhlcgs.com/高仿QQ空间登陆页面。看人家多贴心,键盘都给你准备好了  如果这时候你输入了账号密码,你的QQ和密码就会被记录到后台,这时候Cookie啥的就不在话下了,然后那些所谓的黑客最后只需要将账号密码导出,批量通过QQ账号密码获取Cookie,然后就可以为所欲为了,然后我在网上看到这么一款软件,你懂得。基本上发说说,给好友群发消息或者等等一系列行为基本上都可以实现了。  至于怎么登陆获得cookie可以看下我的这篇用python代码扫码登陆QQ空间获取Cookie值,QQ登陆协议,python模拟登陆QQ


您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯