教育园src第一天之Js逆向小技巧
2023-2-28 22:38:40 Author: 渗透安全团队(查看原文) 阅读量:65 收藏

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

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。
【教育园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插件的资料让我学习一下。


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示

关 注 有 礼

关注下方公众号回复“666”可以领取一套领取黑客成长秘籍

 还在等什么?赶紧点击下方名片关注学习吧!


群聊 | 技术交流群-群除我佬

干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247498979&idx=2&sn=c37bd8568409d6f2fc81a0532fa4862d&chksm=c176014cf601885a05d59be7e60faf6cfdda8cb6667d75ccd915baa58cdd08a3f518dabce175#rd
如有侵权请联系:admin#unsafe.sh