目的:利用Win10的任务计划和Python脚本实现蘑菇丁的自动签到
由于蘑菇丁只有app能签到,所以下面使用模拟器来进行分析
因为有个签到的数据ID无法确定是唯一的,大家还是学下怎么抓包吧
需要的工具和环境:
夜神模拟器(你有其它模拟器也行,下面一样的操作)
蘑菇丁app
Burp Site(抓包工具)
Java环境(这个和Burp Site配套的,如果你会用其他的抓包软件就不需要)
python环境
win10 的任务计划程序
分析:
1、设置好burpsite
不要设置环回地址,使用本机IP(我这里是192.168.136.1)端口就习惯8080吧
2、打开模拟器
先设置虚拟定位,为了能在进蘑菇丁后准确定位到你实习的岗位(其它模拟器虚拟定位一样在窗口右边)
模拟器上百度搜索蘑菇丁
选择普通下载
下载完后确定能登陆后设置代理
进入WLAN修改代理IP(长按几秒就出来了)
勾上高级选项后选择手动,填写刚刚设置的代理ip和端口号
保存后上百度测试
成功
3、抓包查看蘑菇丁的登陆信息
打开intercept准备抓包
打开蘑菇丁输入账号密码
登陆信息get!,还是明文传输
记录好url、head头部和post数据,后面要用python实现脚本登陆
4.抓包查看签到的信息
前面设置好虚拟定位后,在签到里再打一次你实习岗位的地址就能定位成功了
同样记录下所有信息
ok!下面就来实现自动登陆吧
python代码:(写中文的地方都需要填上正确信息)
import urllib.request as ur
import ssl
import json
import time
def signIn(token,tpye,context):
data_dict={
"device":"Android",
"address":"实习的详细地址",
"description":"",
"longitude":"上面地址的经度",
"latitude":"上面地址的纬度",
"planId":"抓签到包上显示的planID",
"type":tpye
}
url = 'https://api.moguding.net:9000/attendence/clock/v1/save'
headers = {
'Authorization': token,
'Content-Type': 'application/json; charset=UTF-8',
'roleKey': 'student'
}
data=json.dumps(data_dict)
requests=ur.Request(url=url,data=data.encode("utf-8"),headers=headers)
try:
if json.loads(ur.urlopen(requests,context=context).read().decode())['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(type,context):
login_data = {
"phone":"登陆的电话",
"password":"登陆的密码",
"uuid":"",
"loginType":"android"
}
request_login = ur.Request(
url = 'https://api.moguding.net:9000/session/user/v1/login',
data =json.dumps(login_data).encode(),
headers = {
'Content-Type':'application/json; charset=UTF-8'
}
)
try:
token = json.loads(ur.urlopen(request_login,context=context).read().decode())['data']['token']
if token:
signIn(token,type,context)
except Exception as e:
datad = '<urlopen error Remote end closed connection without response>'
if datad==str(e):
print('网络连接超时')
else:
print('账号或密码输入错误')
pass
if __name__ == '__main__':
context = ssl._create_unverified_context()
login("START",context)
time.sleep( 15 )
login("END",context)
win10任务计划设置:
选择创建基本任务
随便取个名字后下一步
下一步
日期你今天签过了就选明天的吧,时间自己设置好,我这时早晨10点(确定这个时间电脑时开着的)
在浏览里找到你pythonw.exe(这是无窗口的Python可执行程序,跟python.exe在同一目录下的)的绝对路径
#找不到的就打开cmd 输入:where python就可以看到啦
接着把前缀剪切到起始于那(别问问就是好看)
当然你也可以不理
最后添加参数就是我们刚写好的python脚本的绝对路径啦(别问为什么我的不是,问就是演示懒得写)
!!!这些都需要填写绝对路径的,填错脚本就执行不了了
最后完成就ok啦
可以在任务计划程序库里查看状态
-----------------------------------------------------------------我是分割线--------------------------------------------------------------
跟着配置完最好在第二天(任务计划设置的时间后)检查下是否正常签到成功噢!!!
有不懂或者有问题的地方欢迎在下面评论,收到信息会及时更新回复的(...大概)