简易的JS逆向解码

小豆   ·   发表于 2023-05-02 11:59:59   ·   技术文章

在实战的漏洞挖掘中阅读JS有以下几个作用:

1.JS中存在插件名字,根据插件找到相应的漏洞直接使用

通过控制台大致阅读网站JS代码发现此网页引用了北京的一家公司的代码,并且使用了h-net的框架,接下来我们可以百度这家公司或者是这个框架 曾经爆出的一些漏洞来尝试拿下这个站。

2.JS中还存在一些URL链接,根据链接找到相应的页面进一步测试和利用
那京东网站为例,假如网站上的所有功能点都测完了,但是发现没有漏洞,在你毫无头绪的时候可以打开控制台CTRL shift + f 全局搜索一下,可以看到有很多网站的更多路径,我们可以继续顺着这个路径尝试找到它的其他漏洞。

3.JS中存在一些子域名,可以直接访问子域名
假如我们现在攻击的目标是jd.com,我们可以在全局搜索中查找泄露的子域名,帮助我们获得其他相关的信息

4.JS中敏感信息泄露给用户

一些开发喜欢在备注里写一些敏感信息,后来忘记删除,比如在这个备注里留有京东员工的名字,在之后需要爆破密码时,我们可以直接爆破他的密码。

5.使用JSfind工具获取 JS中泄露的URL链接和域名

游览器控制台使用技巧和方式

JS断点调试
假如我们在测试过程中发现可疑函数时,可以打开调试器 ctrl shift +f全局搜索js文件中出现这函数的地方,辨别出定义这个函数的语句点击左边的“行数”进行断点调试,让网站从上向下运行到我们打了断点的地方停止运行,以便我们了解函数在我们刷新页面时运行情况;按F11可以运行到下一个语句结束,按ctrl+F11是退回到上一个语句。(谷歌游览器)
例如:在一个后台登陆页面,我们随便输入点击登录后在调试器的网络里查看POST请求时发现了可疑函数keydata

后来利用全局搜索发现这个函数是将我们输入的用户名以及加密后的密码(我们输入的)存储到这个函数中,明白这个之后,在之后需要爆破密码时,我们就可以逆向破解它的密码加密方法。

Python和JS结合解决加密难题

碰到这种登录页面我们第一想到的是弱密码,无效后会尝试抓包爆破

但是当我们抓包后发现密码是经过加密后的,我们没有加密后的字典,更何况我们也不清楚它的加密方法

所以这里我们就要使用python和JS结合逆向解码爆破

python指的是我们利用一个有固定模板的py文件,其中:
1.js指的是当我们运行1.py文件时,它会先运行1.js
md5是指你要破解的密码在网站中的加密函数
md5后面填的是你想要破解的密码
JS指的是我们在网站中全局搜索分析出的与加密相关的函数方法全都复制到1.js文件中配合1.py使用

就上面的例子实战一下

分析js代码后发现我们输入的密码被hex_md5函数进行加密,接着我们寻找这个加密函数

将函数添加运行后显示报错,提示缺少对象,说明它里面还调用了其他函数,继续搜索添加到1.js中运行1.py

比较幸运,这个站的加密方法,他直接就是个md5.js文件,运行结果与我们抓包得到的一致

现在将现有的字典进行加密破解

在1.py的基础上稍加改造;
passwd.txt文件就是咱们要加密的字典;
绿色标记的地方是指当我们遇到加密过程中用到在短期内不会失效的随机数组,将数组添加到绿色箭头的空内,进行破解;
admin指的是我们要爆破的用户名。

用户名金币积分时间理由
Track-聂风 45.00 0 2023-05-05 15:03:55 一个受益终生的帖子~~

打赏我,让我更有动力~

1 条回复   |  直到 2023-5-12 | 902 次浏览

seraphim
发表于 2023-5-12

好贴

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.