吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 25726|回复: 291
收起左侧

[Web逆向] 女朋友教务系统抢课老抢不上,写个代码解决这个问题

    [复制链接]
shiyier 发表于 2023-1-27 20:27
本帖最后由 shiyier 于 2023-1-27 20:30 编辑

某方正教务系统登陆加密破解

前言

过完年慢慢出成绩了,每天打开看成绩实在麻烦,索性写了一个自动登录的程序,用来每天微信提醒上课以及成绩推送。

功能

已实现:

  1. 破解登录密码加密,实现自动登录。

可实现:

  1. 获取课表,每日推送。
  2. 抢课快人一步。
  3. 成绩推送。
  4. 方正教务系统各个功能都有api,可以自动化各种功能。
  5. 飞扬的思想来创造吧

分析网页

打开方正教务系统首页随便输入账号密码点击登录,会发现有一个post请求是发送登录信息的,点开Payload发现传入了四个参数。

yhm是明文显示的,可以忽略。

剩下的就是csrftoken、mm了。mm传入了两次,但是两次的值是一样的,这个时候直接打开搜索框进行搜索。

csrftoken值获取

首先搜索csrftoken的值,发现出现了两个链接,第二个是html页面,一眼就看到了csrftoken。我们点进去看看。

点开一看发现csrftoken是写在网页里面的,这就很好办了,写代码的时候请求网页用ButifulSoul库解析获取一下就行,现在我们来关注一下请求里面的mm。

csrftoken获取代码:

def getpage(self):
    # 获取教务系统网站
    self.session.headers.update({
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "Accept-Encoding": "gzip, deflate",
        "Accept-Language": "zh-CN,zh;q=0.9",
        "Cache-Control": "max-age=0",
        "Connection": "keep-alive",
        "Referer": 'https://jwxt.xjau.edu.cn/jwglxt/xtgl/login_slogin.html?time=' + str(int(time.time())),
        "Upgrade-Insecure-Requests": "1"
    })
    self.response = self.session.get('https://jwxt.xjau.edu.cn/jwglxt/xtgl/login_slogin.html?time=' + str(int(time.time()))).content.decode("utf-8")
    data = BeautifulSoup(self.response, 'lxml')
    self.csrftoken = data.find('input', id='csrftoken')['value']

mm加密分析

我尝试了“mm:”、“mm=”、“mm = ”这几个关键字,什么都搜不到,继续搜索mm这个关键字,出现了一大堆,看着就头疼。但是咱们有敏锐的洞察力,一眼就看到了关键字眼:hex2b64(rsaKey.ecvrypt(***))。这不就是rsa非堆成加密嘛,功夫不负有心人,找到了加密方式就很好破解了,我们点击进去看看。

观察了一下这一块,有个if...else...。在else里面就是mm的加密方式了。总共有三行,很典型的RSA非对称加密。其中先定义了rsakey这个变量,然后用setPublic方法来加密密钥。

因为是RSA非对称加密,所以“modulus”和“exponent”一定有方法获取到。我们来搜索一下

搜索到了“modulus”和“exponent”的定义方式在第48行。发现是是请求了一个链接,链接返回的是json格式的数据,我们返回Network找找看。

果然找到了,请求的时候加上时间戳就可以直接获取了。我们现在返回加密那块。

我们点击函数hex2b64,他跳转到了一个新的js页面,这个页面只有72行,应该就是hex2b64的加密代码了。

搜索一下b64tohex,发现有一个function b64tohex(s){}函数,不用想,这个肯定就是b64tohex的加密代码了。是和hex2b64在一个js文件。

再搜一下encrpt,发现有一个js文件是名字就叫rsa.js。也不用想,肯定就是 RSAEncrypt的加密了。

这些都找到了,我们就把代码扣下来,写到js文件里面。同时要在js文件里写一个函数,用来调用获取加密密码。

function getpwd(mm, modulus, exponent) {
var rsaKey = new RSAKey();
rsaKey.setPublic(b64tohex(modulus), b64tohex(exponent));
var enPassword = hex2b64(rsaKey.encrypt(mm));
return enPassword
}

js代码写好后运行一下,提示登陆成功!

到这里登陆就搞定了。后面获取课程表抢课,成绩推送直接调用接口就可以了。观察了一下所有功能都可以通过调用接口来实现。剩下的就是大家飞扬思想了。

点击这里下载源码:


pj.zip

8.54 KB, 下载次数: 512, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 93威望 +1 吾爱币 +103 热心值 +84 收起 理由
qingfengvvv + 1 + 1 谢谢@Thanks!
leo2333333333 + 1 用心讨论,共获提升!
Caiy + 1 用心讨论,共获提升!
a20020414 + 1 我很赞同!
chyduck + 1 我很赞同!
v01d + 1 + 1 我很赞同!
涛之雨 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
pandore + 1 + 1 谢谢@Thanks!
DieInMemory + 1 + 1 我很赞同!
pengkuang + 1 + 1 我很赞同!
huang163t + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Arthurxiao + 1 + 1 我很赞同!
Cions + 1 + 1 热心回复!
wzg020228 + 1 + 1 谢谢@Thanks!
a3611 + 1 我很赞同!
nidemifan + 1 + 1 我很赞同!
hap + 1 + 1 谢谢@Thanks!
yibinhan + 1 我很赞同!
jack2333 + 1 + 1 谢谢@Thanks!
zjerry + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
LiD3ath + 1 我很赞同!
DOrothyOrchids + 1 + 1 谢谢@Thanks!
香芋 + 1 + 1 用心讨论,共获提升!
DirtyMoon + 1 我很赞同!
哒劳德 + 1 + 1 我很赞同!
qweasd88866 + 1 + 1 谢谢@Thanks!
Indra + 1 热心回复!
lyqjqly + 1 + 1 我很赞同!
抱鱼睡的猫 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
阅微 + 1 + 1 大佬,还缺女朋友不?
暗影夺魄 + 1 啥都没搞懂,感觉好厉害
virs520 + 1 + 1 热心回复!
清束 + 1 + 1 我很赞同!
cryfly + 1 啥也看不懂,就喜欢这种知识快速从眼前流过的感觉
ygaoxiang + 1 谢谢@Thanks!
哆啦酱_# + 1 + 1 用心讨论,共获提升!
rumushiyi + 1 + 1 热心回复!
li645944229 + 1 + 1 谢谢@Thanks!
jgf3633 + 1 + 1 fangzheng很恶心 你要小心
lamgpyc + 1 谢谢@Thanks!
RedLips彡 + 1 用心讨论,共获提升!
zswseu + 1 + 1 我很赞同!
tocabd + 1 + 1 谢谢@Thanks!
CrazyNut + 3 + 1 谢谢@Thanks!
gyeongin + 1 + 1 我很赞同!
jhy0117 + 1 + 1 我很赞同!
1MajorTom1 + 1 热心回复!
wjp91651 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
tte + 1 + 1 问一下女朋友在哪里领?
hhtvcn + 1 我很赞同!
icy0012 + 1 + 1 谢谢@Thanks!
lelexiaocai + 1 + 1 谢谢@Thanks!
qsj521521 + 1 + 1 谢谢@Thanks!
我不是坏人 + 1 + 1 谢谢@Thanks!
UlyxuaAri + 1 + 1 谢谢@Thanks!
haiyangnanzi + 1 + 1 谢谢@Thanks!
xw189 + 1 + 1 谢谢@Thanks!
crizquan + 1 + 1 谢谢@Thanks!
Cerem + 1 + 1 我很赞同!
bgaidu + 1 + 1 简单易懂 直接明了
yangkaicheng + 2 + 1 先来个女朋友
huang1993 + 1 + 1 懂技术的大佬就是多女朋友
观音大湿_enjoy + 1 + 1 用心讨论,共获提升!
yuweb + 1 + 1 女朋友的需求是文明进步的阶梯
xljh888 + 1 + 1 谢谢@Thanks!
WillsonXia + 1 + 1 好东西,狠狠的资瓷了
renshaowei + 1 + 1 谢谢@Thanks!
我的宝宝 + 1 + 1 谢谢@Thanks!
shikozhou + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
menoooooos + 1 + 1 我很赞同!
welking + 1 + 1 用心讨论,共获提升!
wa00000 + 1 + 1 我很赞同!
zby86888324 + 1 + 1 谢谢@Thanks!
轻井泽惠 + 1 + 1 我很赞同!
owouwu + 1 + 1 谢谢@Thanks!
slaway + 1 + 1 我很赞同!
acecttgd + 1 我很赞同!
cjw666 + 1 + 1 用心讨论,共获提升!
AWGemini + 1 + 1 谢谢@Thanks!
agonyperkey + 1 谢谢@Thanks!
sht281 + 1 + 1 谢谢@Thanks!
嘻哈笑看人生丶 + 1 + 1 女朋友是文明进步的阶梯~~哈哈~~
xylqr + 1 + 1 谢谢@Thanks!
cyx94a + 1 + 1 我很赞同!
Bob5230 + 1 + 1 热心回复!
Eilliem + 1 + 1 思路清晰
砺心缘起 + 1 + 1 我很赞同!
CYLmtthhh + 1 我很赞同!
Eureka8 + 1 + 1 谢谢@Thanks!
YFxbxb888 + 1 + 1 你好,请问你已经有女朋友了,那你还缺男朋友吗
lammysoft + 1 论坛内帖子不得附带破解成品,仅可提供思路
q510 + 2 + 1 谢谢@Thanks!
Establish + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hellopolly 发表于 2023-1-27 20:46
代码有了。女朋友在哪里?忘了。我已是两个儿的爸爸了

免费评分

参与人数 2吾爱币 +2 收起 理由
BIGOcean + 1 可以帮两个儿子的小女友抢lol:
娜美 + 1 记得帮你儿子抢

查看全部评分

YFxbxb888 发表于 2023-1-27 21:06
sir2008 发表于 2023-2-1 21:14
最新的 发表于 2023-1-27 20:33
有你这样的男朋友,你女朋友肯定很幸福
canxued 发表于 2023-1-27 21:22
感谢大佬,马上就可以用了
当初遇你时 发表于 2023-1-27 21:26
把里面的网址替换成自己学校的,然后第39行报错simplejson.errors.JSONDecodeError: Expecting value: line 3 column 1 (char 4)网站系统版本都是一样的。
ikam 发表于 2023-1-27 22:04
还是大佬强啊
AsuraSong 发表于 2023-1-27 20:33
谢谢楼主分享,思路清晰方便学习
ManaCola 发表于 2023-1-27 20:41
python做小工具确实很方便啊
lang123 发表于 2023-1-27 20:53
谢谢楼主分享,帮助很大,真的厉害!
 楼主| shiyier 发表于 2023-1-27 21:31
当初遇你时 发表于 2023-1-27 21:26
把里面的网址替换成自己学校的,然后第39行报错simplejson.errors.JSONDecodeError: Expecting value: line ...

39那里的函数是获取rsa的modulus和exponent,可能你们学校教务系统的json数据格式不太一样
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 16:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表