0x01 前言
在挖洞授权渗透测试过程中经常会遇到JS加密的问题,我们可以通过调试获取加密函数在写脚本生成密码来爆破,原创作者:1nk123师傅。
末尾可领取字典等资源文件
0x02 前台登录分析
开局一个登录界面,由于测试其他系统的时候感觉这个系统的口令强度整体做的比较弱(其他系统也有存在弱口令的情况),就想着对这个登录进行爆破首先要测测这里的验证码验证机制是真还是假的,测试发现对于同一个验证码是可以重放不同用户名密码,这就为后续提供了条件。
我们先随机填一个账户密码抓包。
发现用户名密码都做了加密处理,之前爆破这里都放弃了,现在重新审视一下。得知加密字段是txt_Name txt_Password,在前端js搜索一下这两个字段。
成功搜到了相关加密代码
if (checkResult) {
txt_Name = encrypt(xssFilter(txt_Name));
txt_Password = encrypt(xssFilter(txt_Password));
0x03 提取加密函数
得知这里使用了encrypt函数对密码用户名进行加密,xssFilter可以忽略,是对一些特殊字符的过滤到这里试试了网上很多的方法没有成功,不知道是环境问题还是哪里。我也一点也不懂前端js技术,思考了一下html文件的大致逻辑,html引用一系列js文件,这里
<script src="Js/jquery-3.1.1.min.js"></script>
的代码就大致相当于php中的文件包含,将js引入这个html文件,那我们能不能直接将网页中的所有js文件下载下来,然后利用本地的html文件引用,本地html文件再调用js中的加密函数。理论可以,我们开始实践,写对应的html文件,这里也可以借助一下GPT,星球内部即将推出共享GPT4账号!!
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件加密</title>
<script src="jquery-3.1.1.min.js"></script> //这个部分引入网页的所有js文件
<script src="crypto-js.js"></script>
<script src="decrypt.min.js"></script>
<script src="Login.js"></script>
<script>
function handleFileSelect(event) {
const file = event.target.files[0];
const reader = new FileReader();
reader.onload = function(e) {
const content = e.target.result;
const lines = content.split('n');
let encryptedLines = [];
lines.forEach(line => {
const encrypted = encrypt(line.trim()); //修改你的前端加密函数名称
encryptedLines.push(encrypted);
console.log(encrypted);
});
// 将加密的结果输出到一个新的 txt 文件
const encryptedContent = encryptedLines.join('n');
const blob = new Blob([encryptedContent], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'encrypted.txt';
link.click();
};
reader.readAsText(file);
}
</script>
</head>
<body>
<input type="file" id="fileInput" onchange="handleFileSelect(event)">
</body>
</html>
使用方法是我们首先下载网页的所有js文件,然后引用到所有的js文件到这个html文件(这个操作可以使用右键保存网页批量下载),并且我们要知道前端加密数据的函数名,修改html文件中的函数名(位置在代码中以及标出),比如这里就是encrypt然后我们打开这个网页。
选择一个用户名字典
网页就会自动下载加密好的文本文件
这里加密之前的字典是一行形式的,接着我们就可以直接导入burpsuite中字典进行爆破
0x04 总结
这次测试还是学会了许多东西,也是发现自己对JS逆向分析不足。测试还是得想到更多思路才行,内部星球还有其他更便捷简单的办法以及视频学习进行Js逆向,欢迎各位师傅加入了解。
喜欢的师傅可以点赞转发支持一下,谢谢观看!
0x05 内部星球VIP介绍-V1.3更新啦!
加入内部星球可获得内部工具和享受内部资源,包含网上一些付费工具。详情直接点击下方链接进入了解,需要加入的直接点击下方链接了解即可,觉得价格高的师傅可后台回复" 星球 "有优惠券名额有限先到先得!内部包含网上需付费的0day/1day漏洞库,后续资源会更丰富在加入还是低价!
免责声明
获取方法
回复“app" 获取 app渗透和app抓包教程
回复“渗透字典" 获取 针对一些字典重新划分处理(需要更多完整字典可加入星球获取)
回复“书籍" 获取 网络安全相关经典书籍电子版pdf
最后必看
文章中的案例或工具仅面向合法授权的企业安全建设行为,如您需要测试内容的可用性,请自行搭建靶机环境,勿用于非法行为。如用于其他用途,由使用者承担全部法律及连带责任,与作者和本公众号无关。本项目所有收录的poc均为漏洞的理论判断,不存在漏洞利用过程,不会对目标发起真实攻击和漏洞利用。文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用。如您在使用本工具或阅读文章的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。本工具或文章或来源于网络,若有侵权请联系作者删除,请在24小时内删除,请勿用于商业行为,自行查验是否具有后门,切勿相信软件内的广告!
原文始发于微信公众号(渗透安全HackTwo):Web前端密码被加密JS逆向爆破密码技巧-渗透测试
原文始发于微信公众号(渗透安全HackTwo):Web前端密码被加密JS逆向爆破密码技巧-渗透测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论