吾爱Po解啊 发表于 2022-1-10 18:37

蘑菇丁自动签到

本帖最后由 吾爱Po解啊 于 2022-1-11 10:52 编辑

目的:利用Win10的任务计划和Python脚本实现蘑菇丁的自动签到
由于蘑菇丁只有app能签到,所以下面使用模拟器来进行分析
因为有个签到的数据ID无法确定是唯一的,大家还是学下怎么抓包吧https://img-blog.csdnimg.cn/20200115213831301.jpg?data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==​需要的工具和环境:
夜神模拟器(你有其它模拟器也行,下面一样的操作)
moguding app
Burp Site(抓包工具)
Java环境(这个和Burp Site配套的,如果你会用其他的抓包软件就不需要)
python环境
win10 的任务计划程序分析:1、设置好burpsite
不要设置环回地址,使用本机IP(我这里是192.168.136.1)端口就习惯8080吧
https://img-blog.csdnimg.cn/20200115184350322.png?

​2、打开模拟器
先设置虚拟定位,为了能在进蘑菇丁后准确定位到你实习的岗位(其它模拟器虚拟定位一样在窗口右边)
https://img-blog.csdnimg.cn/20200115201433397.png?data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==​
设置代{过}{滤}理
https://img-blog.csdnimg.cn/20200115184909175.png?​
进入WLAN修改代{过}{滤}理IP(长按几秒就出来了)
https://img-blog.csdnimg.cn/20200115184958917.png?​
勾上高级选项后选择手动,填写刚刚设置的代{过}{滤}理ip和端口号
https://img-blog.csdnimg.cn/20200115185047333.png?​
保存后上百度测试
https://img-blog.csdnimg.cn/2020011519254568.png?​
成功

3、抓包查看登陆信息
打开intercept准备抓包
https://img-blog.csdnimg.cn/20200115192749396.png​
打开moguding输入账号密码
登陆信息get!,还是明文传输https://img-blog.csdnimg.cn/20200113180243169.jpg?data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==​
https://img-blog.csdnimg.cn/20200115192737756.png?data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==​
记录好url、head头部和post数据,后面要用python实现脚本登陆
前面设置好虚拟定位后,在签到里再打一次你实习岗位的地址就能定位成功了(下面这张是旧的版本返回值)
https://img-blog.csdnimg.cn/20200115195348923.png?​
同样记录下所有信息

2022/1/10更新:
这次主要对签到接口的更新,因为这软件最新版在请求头多了个sign参数校验,不过经测试后只要确定签到地址(后面不要变地址了),然后记录下上班和下班状态的sign就好,这样就是固定的
https://img-blog.csdnimg.cn/1d6aab7841d74217ae5a7d2337d31912.png?​
https://img-blog.csdnimg.cn/fe6a67c6ca1f46c79673c1afc6745e7c.png?
ok!下面就来实现自动登陆吧
https://img-blog.csdnimg.cn/20200115202331404.jpg?

python代码在文章最下面更新处:(写中文的地方都需要填上正确信息)

win10任务计划设置:
https://img-blog.csdnimg.cn/20200115202912195.png​
选择创建基本任务
https://img-blog.csdnimg.cn/20200115202934385.png?​
随便取个名字后下一步
https://img-blog.csdnimg.cn/20200115203053464.png?​
下一步
日期你今天签过了就选明天的吧,时间自己设置好,我这时早晨10点(确定这个时间电脑时开着的)
https://img-blog.csdnimg.cn/20200115203158422.png?​
https://img-blog.csdnimg.cn/2020011520333094.png?​
在浏览里找到你pythonw.exe(这是无窗口的Python可执行程序,跟python.exe在同一目录下的)的绝对路径
#找不到的就打开cmd 输入:where python就可以看到啦
接着把前缀剪切到起始于那(别问问就是好看)
当然你也可以不理
最后添加参数就是我们刚写好的python脚本的绝对路径啦(别问为什么我的不是,问就是演示懒得写)
!!!这些都需要填写绝对路径的,填错脚本就执行不了了
https://img-blog.csdnimg.cn/20200115203526828.png?​
最后完成就ok啦
https://img-blog.csdnimg.cn/202001152044455.png?​
可以在任务计划程序库里查看状态
https://img-blog.csdnimg.cn/2020011520481524.png?​
跟着配置完最好在第二天(任务计划设置的时间后)检查下是否正常签到成功噢!!!
-----------------------------------------------------------------------------------------------------------------------我是分割线---------------------------------------------------------------------------------------------------------------------------------------

2022/1/10更新

import requests
import json
import time
signID={"START":你的START状态的Sign,"END":你的END状态的Sign}
def signIn(token,type,cookies):
    url = 'https://api.moguding.net:9000/attendence/clock/v2/save'
    headers = {      
    'sign': signID,      
    'Authorization': token,      
    'Content-Type': 'application/json; charset=UTF-8',      
    'Rolekey': 'student'   
    }
    data_dict={      
      "device":"Android",      
      "address":实习的详细地址,      
      "description":"",      
      "longitude":上面地址的经度,      
      "latitude":上面地址的纬度,      
      "planId":抓签到包上显示的planID,      
      "type":tpye   
    }
    response = requests.post(url,headers=headers,data=json.dumps(data_dict),cookies=cookies)
    try:
      if response.status_code==200:
            pass
      else:
            with open('C:/Users/Administrator/Desktop/signlog.txt', 'a+') as f:
                f.write(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())+'签到失败\n')
    except Exception as e:
      pass
def login(signIn_type):
    login_data = {      
      "phone":登陆的电话,      
      "password":登陆的密码,      
      "uuid":"",      
      "loginType":"android"   
    }
    url = 'https://api.moguding.net:9000/session/user/v1/login'
    headers = {      
      'Content-Type':'application/json; charset=UTF-8',      
      'Authorization':"",         
      'Rolekey':""   
    }
    response = requests.post(url,headers=headers,data=json.dumps(login_data))
    cookies = requests.cookies.RequestsCookieJar()   
    cookies.update(response.cookies)
    token = json.loads(response.text)['data']['token']   
    if token:      
      signIn(token,signIn_type,cookies)
    try:
      pass   
    except Exception as e:
      if "connection" in str(e):            
            print('网络连接超时')
      else:
            print('账号或密码输入错误')      
if __name__ == '__main__':
    login("START")
    time.sleep(15)
    login("END")


代码出现中文报错就是你要更改的参数,内容记得用英文引号""括起来
例:"phone":登陆的电话-->"phone":"1000xxxxxxx"
OK后面应该不会在更新了,各位自行调试
看到有人问云函数的,后续可能会出个相关教程(..大概)反正没人看
https://img-blog.csdnimg.cn/17dc4da225c44fe19e8372c865f46df7.jpg?​
对!转载记得标明出处啊wei(#`O′)!!

-----------------------------------------------------------------------------------------------------------------------我是分割线---------------------------------------------------------------------------------------------------------------------------------------
有不懂或者有问题的地方欢迎在下面评论,收到信息会及时更新回复的(...大概)​

吾爱Po解啊 发表于 2022-1-19 12:42

_达圣 发表于 2022-1-11 13:01
其它网站的自动签到脚本怎么编写?比如吾爱破解网?可以对照着一步一步给个接口教程吗?

思路都差不多的,抓包找接口,然后写脚本测试

涛之雨 发表于 2022-1-11 07:34

都py了,那还不丢一份到云函数上cron执行?
然后配合企业微信、微信公众号、钉钉、邮箱等多端推送

明次 发表于 2022-1-10 20:39

感谢楼主分享~~

TMUGE 发表于 2022-1-10 22:57

感谢楼主,求一份云函数的

Jesp 发表于 2022-1-11 00:03

还需要写日报 周报 月报...

netpeng 发表于 2022-1-11 00:39

看得云山雾罩,求一份云函数代码

walkercao 发表于 2022-1-11 07:59

感谢分享
膜拜大神

zhzhch335 发表于 2022-1-11 08:20

连怎么抓包都教了 太细心了!

fengjewel 发表于 2022-1-11 08:38

谢谢分享

_达圣 发表于 2022-1-11 13:01

其它网站的自动签到脚本怎么编写?比如吾爱破解网?{:1_893:}可以对照着一步一步给个接口教程吗?
页: [1] 2
查看完整版本: 蘑菇丁自动签到