Requirement
Am:
- 单词半小时
- 行测图推常识半小时,找到解题策略
- 看美剧一集
- 找到Leetcode刷题方法
Pm:
- 找模型安全文献阅读
Summary
数量关系六大题型
- 行程问题
- 相遇追及问题
- 流水行船问题
- 时钟问题
- 工程问题
- 浓度问题
Am:
Pm:
python configparser模块不区分大小写问题
经源码分析,configparser内部存在自动转化小写代码.
def optionxform(self, optionstr):
return optionstr.lower()
找到原因,只需要重写该函数即可。
class myconf(configparser.ConfigParser):
def __init__(self,defaults=None):
configparser.ConfigParser.__init__(self,defaults=None)
# 区分大小写
def optionxform(self, optionstr):
return optionstr
git push >> fatal: no configured push destination
像返回错误所说,我们在download下来的自由仓库想push上去除了进行下列操作
git init
git add *
还需要添加远程仓库
git remote add origin git@github.com:
/demo_app.git
git push -u origin master
mklink /j "C:\Users\ayjin\Desktop\你想在桌面显示的名字" "G:\创建好的文件夹名"
Description
最近要开学了,需要7天的体温上报,之前漏了两天,想着写个脚本自动填报。最开始以为还挺容易的,登录验证拿个Cookie直接梭哈post就可以,后面...是我太年轻
Processing
首先介绍下背景,济南大学的体温上报正常方式是走微信的智慧济大接口进行填报,很自然就想到抓个包找找提交接口然后python post即可,然后就迎来了第一个坑,夜神模拟器安卓7以后的Fiddler证书不支持自主导入了,这个你们可以google看看,有很多失败案例。解决方案如链接,大家可以进去看看~
Monitor SSL&Fiddler config
解决方案:
https://www.licqi.com/artikel/10314.html
Fiddler Traffic capture
正常配置好上面的模拟器后,我们可以抓到接口
url:'http://fanxiao.ujn.edu.cn/resultOffHealthyDay/addOffHealthyDay'
什么?你想手动登录进去然后进页面直接填报?太年轻啦~你可以试试
仔细看看我们抓的包携带的Cookie和你登陆完的Cookie JessionId是不一样的,所以你不能直接提交。
其次是什么呢?前端页面有定位绕过限制,如果你不提前抓包,你是不知道微信提交的Latitude和Longtitdu的格式。总之,这条路也是不好走的,我们还是得解决这个Cookie怎么解决的问题。
现在我们知道了,提交的Cookie是带Sig的,目标锁定在Sig获取上面。
Cookie sig analysis
这里光看微信抓到的包相信已经作用不大了,我们尝试进入https://fanxiao.ujn.edu.cn/
我们可以发现,这里是会给你重定向到一个登录界面的,选择统一身份验证,进去后记得打开好Fiddler开始抓包。
我们可以看到整个请求过程是
登录请求POST:https://sso.ujn.edu.cn/tpass/login?service=http://fanxiao.ujn.edu.cn/cas/index
携带data:rsa/ul/pl/lt/execution/_eventId
rsa:为学号、密码、lt字符拼接和DES加密生成的加密数据
ul:学号长度
pl:密码长度
lt/execution:页面可以get请求得到,自己xpath可以拿到
_eventId:固定为submit
然后你会看到返回什么呢?这里埋个坑,你可能觉得我是不是请求失败了~
然后你会发现整个抓包流有一个过程就是:登录请求->拿到票据->拿到Cookie{Jessionid&&Sig}
对应的请求顺序为:
first:https://sso.ujn.edu.cn/tpass/login?service=http://fanxiao.ujn.edu.cn/cas/index
second:'http://fanxiao.ujn.edu.cn/cas/index?' + ticket
经查阅资料,才知道这是CAS单点登录得流程顺序
那么这个ticket哪里来呢?
通过分析Fiddler返回请求头,可以发现,返回数据中有一个字段为
Location,Location后面就有着我们要的ticket
然后带上ticket拼接我们的Second步骤,就可以为我们的requests带上Cookie,也就能够对后台用户接口进行正常的请求,这里就以UserInfo为例子进行请求,可以发现是可以拿到数据的。
UserInfo:http://fanxiao.ujn.edu.cn/api/auth/userInfo
至此,大工程已经可以说完成了,我们的sig也添加到了我们的返回请求头中。
最后是提交体温上报的接口中:
体温上报:http://fanxiao.ujn.edu.cn/resultOffHealthyDay/addOffHealthyDay
源代码
url:
首先呢,非常高兴能够参加这一次的夏令营。起初是因为考研没考上打算二战来着,不过现在也算调剂成功,在这次夏令营中也见识到了很多大佬和一些没听过的技术hhh
现在是2022/08/28 1:42分,先睡一下~明天再更