教育园src第一天之js逆向小技巧
2023-2-9 16:6:0 Author: moonsec(查看原文) 阅读量:23 收藏

声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。
【教育园src】js逆向小技巧

兄弟们,系我,暗月最深情的徒弟,跟着月师傅苦学两年半的挖洞练习生。为什么要写关于教育园了,第一嘛好上手挖洞,第二是我看隔壁小迪也再搞edu的挖掘,不能丢面子呀,打算给月师傅专门搞个教育园src专场小技巧,望大家给月师傅公众号(搜:moonsec)和我点点关注。

0x01 前言

    本来是不打算挖教育园了,除了上面的理由,主要是某个好成员教育园分超过我了???,再加上又来个1000多分的佬,不行了我也要开始上分,不能丢月师傅的脸。

0x02 信息收集

        没有信息收集了,这次主要讲小技巧关于js的我们直接看登录界面,兄弟们。发现验证码可以重复利用

然后直接看了看登录接口的数据包,好家伙进行加密了,找了一下其他利用方式,还没有发现,看来只能直接js逆向,然后再爆破

可能会有聪明的大兄弟发现是base64了,心里再说:mmp,这么简单的解密还不会,垃圾。可惜这不是我要扣的重点,我是想教会大家js调试和学到东西,而且万一是他自己写的加密的方式了

0x03 js的调试

        为什么要调试?主要为了找出js里面加密的主要函数,然后用python去调用加密函数对你的字典加密,然后就可以爆破了。首先搞清楚是哪个字段加密,userInfo是加密的,那我们就搜索关键字。

很容易看出来,第三个变量是被加密的过程,但我知道你很急,但你别急,我们直接再每个关键字打上断点就行,为什么了?是因为我们去调试,可以看到前端是怎么给你加密的

然后直接点登录你会发现他直接跳到断点的地方了,而且还很清晰的看出来这些用户名和密码是怎么加密的

接下来点击下一步,没学过js的也可以很容易的看出来了,是encode64这个函数对portableList进行加密,而portableList是由账号秘密验证码 拼接起来了的

0x04 调用js函数生成字典

        我们已经搞清楚是哪个函数加密了,直接吧它拿到我们的pycharm里面

写一个调用js函数的python代码,运行一下看看,是不是与前端加密的一样

with open('9.js', 'r', encoding='utf-8') as f:    jstext = f.read()#用来通过变量js.call来调用js的函数ctx = execjs.compile(jstext) # Compile the jstext only oncedef pwd():#调用getPW()js代码对a进行加密    portableList = ctx.call('encode64',a)    return portableList

a="123456,123456,99999"print(pwd())

好家伙是一样的

废话不多说,直接来一个生成加密字典的python代码

import execjsfrom A import *from js import md51import hashlib
with open('9.js', 'r', encoding='utf-8') as f: jstext = f.read()#用来通过变量js.call来调用js的函数ctx = execjs.compile(jstext) # Compile the jstext only oncedef pwd(a):#调用getPW()js代码对a进行加密 portableList = ctx.call('encode64',a) return portableList



try:    text="9579"#验证码可重复使用 filename = "zidian.txt" new_value1 = "admin,123456,"+text+"" with open(filename, "r") as file: lines = file.readlines() with open("9999.txt", "w") as file_out: for line in lines: line = line.strip() line = new_value1.replace("admin", line) data = pwd(line) print(data) file_out.write(data + "\n")except Exception as e: print("An error occurred:", e)

0x04 爆破

        用刚刚的加密好的字典直接爆破看看,发现成功,岂不是可以进入后台获取更多的功能点,进一步利用了,现在已经4.00了,俺先睡了,下次再挖再写。

0x04 总结

        这里只是遇到一个很简单的加密方式,遇到难的或者很经典下次再分享了,写代码真的头疼,本来是想写先orc识别验证码,然后将验证码返回到爆破脚本爆破,这样子就可以批量跑相同的cms了,可惜验证码哪里要最新的才能可以一直使用,还没有找到解决办法。后面想了想还是写burp插件好一点就不会有这些破事了有没有好兄弟有burp插件的资料让我学习一下。本人爱好喜欢听人吹nb,欢迎前来交流。

推荐阅读:干货 | 记又一次教育园js逆向挖掘

推荐阅读:干货‍ | 一波三折的教育园证书挖掘

推荐阅读:干货‍ | 记又一次教育园证书挖掘

推荐阅读:干货‍ | 教育园src上分小技巧

点赞,转发,在看


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMjc0NTEzMw==&mid=2653586460&idx=1&sn=290d36a055fbe554af3f9975593438ee&chksm=811b925eb66c1b485aa4c51da973000054eda5eb37cea2e804731a72fa7a86801c10e2a32786#rd
如有侵权请联系:admin#unsafe.sh