【新手向】实现本论坛自动签到的开发日记 代码鉴赏 教学

ELDment 二级用户组 2023-2-19 824

首先本人不是很熟悉js和html,文章可能有一些错误。

开始之前我们先看看屑站长写的robots协议,

所以说我们单纯写个自动签到是不会让屑站长生气的!  ʅ(‾◡◝)ʃ 


在签到抓包的时候,有一个js流引起了我的注意。

“credits”一般也可以理解为点数,感觉(不会上来就找对了吧?),但是看了一眼代码。

看完之后,感觉(这OO啥东西啊,不出意外是出意外了...)

说实话以我的水平来看,真看不懂这js有什么鸟用,所以索性直接看“发起程序”,进行溯源。

可以看到是“sg_sign.htm”发起的这个js请求的

那我们直接看看这个sg_sign.htm的源码

不过看到这上面的js段倒是更令我在意

<script>
var sg_sign_mobile = $('#sg_sign_mobile');
sg_sign_mobile.on('click', function() {
 var postdata = sg_sign_mobile.serialize();
 $.xpost(xn.url('sg_sign'), postdata, function(code, message) {
   $.alert(message);
   sg_sign_mobile.delay(1000).location(xn.url('sg_sign'));
 });
 return false;
});
</script>

我们都知道本论坛按下签到“按钮”后会弹出提醒,然后重定向到另一个页面

我们都知道location可以实现重定向,但是这个xn.url是什么鸟东西呢?

这时候我们再来看sg_sign.htm的请求链

不出意外的话xn就是xiuno的缩写了,我们查看这个xiuno.js的源码

果不其然,我们可以在xiuno.js中找到xn.url函数,也可以知道这个函数的作用是拟定网址

依次我们更可以确定这个js段就是我们要找的签到相关的操作。

我们可以看到js声明了一个叫sg_sign_mobile的变量,html中对应的id是'sg_sign_mobile'

当这个变量有click事件的时候会执行

var postdata = sg_sign_mobile.serialize();
$.xpost(xn.url('sg_sign'), postdata, function(code, message) {
 $.alert(message);
 sg_sign_mobile.delay(1000).location(xn.url('sg_sign'));
});
return false;

我们再在html中搜索'sg_sign_mobile',看看它对应着什么

至此我们终于可以断定这个js段就是核心的签到操作

那么我们继续来分析这个js段

通过xiuno文档我们可以知道xpost的作用是向目标url发送post请求,并附带返回状态和信息

学长写的是向“sg_sign”这个拟定后的url发送post请求,data为sg_sign_mobile.serialize()

但是我印象里.serialize()是jQuery整理表单用的。如果是个<li>的话估计会是空值吧。。。

所以看到这我想了很久,如何只发送一个data为空值的post请求到'sg_sign.htm'就能实现签到呢?

对了!cookie,如果我们在请求头加上cookie那么应该就可以了(虽然有赌的成分,不过确实成功了! (´・ω・`) )

cookie的获取方法想必大家都会这里就不赘述了。

import requests

if __name__ == "__main__":
    headers = {
        'Content-type': 'application/json',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64;'
                      ' x64) AppleWebKit/537.36 (KHTML, like'
                      ' Gecko) Chrome/89.0.4389.90 Safari/537.36',
        'Cookie': ''
    }
    res = requests.post('https://bbs.csgocn.net/sg_sign.htm', headers=headers)
    res.encoding = 'utf-8'
    print(res)

那么我们就可以写出以上源码

我们刷新论坛页面,发现已经签到成功


 


CSGO插件分享-申明 1、本网站名称:CSGO插件分享-中文站  网址:https://bbs.csgocn.net
2、本站的宗旨在于为CSGO玩家提供一个插件分享的中文资源平台,多数插件来源于SourceMod论坛,并配以中文介绍和安装教程。
3、欢迎有能力的朋友共享有趣的CSGO插件资源。
4、本站资源大多为百度网盘,如发现链接失效,可以点: 这里进行反馈,我们会第一时间更新。
最新回复 (4)
返回