Redian新闻
>
用户名密码加密的页面爆破学习

用户名密码加密的页面爆破学习

科技

前言

目前越来越多的网站系统在登录接口、数据请求接口中加入各式各样的加密算法,甚至有些网站在每次请求前都动态请求加密密钥等措施,对接口渗透工作造成较大障碍,本文简单对登录接口暴力破解时字段被加密,如何处理加密内容进行暴破来进行一个简单的分享。

常见方法和思路

1、分析找出是哪个js文件进行了password参数值的加密,将该js导入本地动态执行,建一个小型的web服务器,利用浏览器页面将js运行起来,把账号密码发给本地这个服务器,然后本地js执行加密之后把加密的值再给登录的请求,实现普通的发包爆破。 

2、利用selenium webdriver,本地驱动一个浏览器,完全模拟浏览器的操作,实现浏览器自动登录爆破. 

3、通过对js里的加密算法进行破解,或者是理清加密流程,然后利用自己熟知的编程语言实现同样的加密方式,写一个效果一样的加密方式,然后把代码嵌入到发包爆破代码里,这种方式字典里账号密码传入的时候,先进行加密再传给登录请求。 

4、利用前面的方法,把密码字典全部加密之后生成对应加密字典,然后普通发包爆破的时候传入加密的字典。

实例1

工作中遇到的一个登录页面,发现登录账号密码都是经过js加密之后再请求发送(通过抓包可以看到加密信息)

burp抓到的包,request的GET的登录包,很明显可以看到param1,param2参数的值是经过前端加密之后再进行传输的,遇到这种情况,普通发包的爆破脚本就很难爆破成功,本次页面中存在滑动验证码,通过burp重放尝试发现该验证码无效。

存在验证码重用的问题,但是请求加密了不能直接进行爆破。所以我们需要分析前端加密代码逻辑。

根据关键字快速定位加密字段

打开浏览器调试模式,根据请求包的关键字在js脚本中进行搜索进帮助我们快速定位,定位到一个ajax请求

该请求中使用了suser 字段和spwd参数,在js中继续寻找参数出现的位置,找到如下代码

可以看到调用了entryt.encrypt()函数对输入的用户密码进行了加密处理,继续寻找函数定义位置,发现在另一个js中进行的定义

一眼看过去,采用AES加密,key 和iv 都有了,使用在线的加密工具验证一下,登录页面中用户名密码均填写tide,传输中的加密字段为4942b13dc0e541615f52f0a3cb4b321f,用户名密码采用相同的加密算法,

AES加密验证:4942b13dc0e541615f52f0a3cb4b321f,在实际测试过程中因为输出编码没有修改这里绕了一个大圈,以为是不对的见下图,实验过程中是从页面中继续提取JS进行的测试,

正确输出方式

此时可通过Python脚本对字典通过该加密方式进行加密后破解,如果验证不正确的话可以继续在前台页面中寻找加密的js代码通过加载js进行加密,本次实验我们继续在页面查找具体加密的js文件,找到包含CryptoJS的js文件如下

aes算法的js

编写脚本加密字典

编写一个html页面使用站点前台的js文件对字典文件进行加密,html代码如下:

<!DOCTYPE html>
<script src="core-min.js"></script>
<script src="aes.js"></script>
<script src="jquery-2.0.2.min.js"></script>
<html lang="zh">
<head>
  <meta charset="UTF-8" />
  <title>EncryptionStr</title>
</head>
<body>
  <div>
    <input type="file" name="file" multiple="multiple" id="files" onchange="choosefile()" />
    <div id="name"></div>
    <textarea id="text" cols="100" rows="50"></textarea>
  </div>
  <script type="text/javascript">
  var entryt = {
    encrypt: function (str, key, iv) {
        if (!key || !iv) {
            key = "1234567890abcdefghijklmnopqrstuv";
            iv = "1234567890abcdef";
        }
        var _key = CryptoJS.enc.Utf8.parse(key);
        var _iv = CryptoJS.enc.Utf8.parse(iv);
        var srcs = CryptoJS.enc.Utf8.parse(str);
        var encrypted = CryptoJS.AES.encrypt(srcs, _key, {
            iv: _iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return encrypted.ciphertext.toString();
    }
 }
  
  function choosefile () {
    var fileList = document.getElementById('files').files;
    var nameStr = '';
    for (var i = 0; i < fileList.length; i++) {
        nameStr += `${i === 0 ? '' : ', '}${fileList[i].name}`;
        var reader = new FileReader();
        reader.readAsText(fileList[i], "UTF-8");
        reader.onload = function (e) {
            var content = e.target.result;
   const arr = content.split("\n");
   for (var i=0;i<arr.length;i++)
   {
    //document.getElementById('text').value=document.getElementById('text').value+arr[i]+"\n"; //加密前
    document.getElementById('text').value=document.getElementById('text').value+entryt.encrypt(arr[i])+"\n"; //加密后
   } 
        }
    }
    document.getElementById('name').append(nameStr);
  }
  </script>
</body>
 
</html>

加密用户名字典效果如下:

使用加密后的字典对用户名进行猜解

实例2

遇到如下登录页面,点击登录的时候也存在滑块验证码,但经过测试该数据包仍可重放。

同样,查看页面源码页面发现存在登录按钮事件

继续查找登录按钮事件找到滑块验证结束后会调用this.onSuccess()函数

this.onSuccess()函数如下,可以看到在对密码加密过程中调用了rsaEncrypt函数

通过引用文件找到rsaEncrypt在./secret.js 文件中定义

最终找到RES加密算法的公钥和私钥,可通过编写脚本使用该公钥对密码字典进行加密后爆破

工具提高生产力

「使用 BurpCrypto 插件」

通过上面的分析已经知道登录页面使用了AES加密,BurpCrypto 默认集成了AES加密模块,

先添加一个Processor

Processor选择我们刚才添加的

最总效果

RAS算法配置

工具下载

工具已同步知识星球。


总结

前端小白,整体内容并不复杂,相对正常测试加入了一部分前端的内容,当我们遇到前端加密的时候可以通过找找加密算法进行进一步利用。


往期推荐

敏感信息泄露

潮影在线免杀平台上线了

自动化渗透测试工具开发实践

【红蓝对抗】利用CS进行内网横向

一个Go版(更强大)的TideFinger

SRC资产导航监测平台Tsrc上线了

新潮信息-Tide安全团队2022年度总结

记一次实战攻防(打点-Edr-内网-横向-Vcenter)

E

N

D


知识星球产品及服务

团队内部平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台  | ......


星球分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享


星球知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......


星球网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑  | ......

扫码加入一起学习吧~

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
【教育】校长撞破学生行窃被杀?法国教育令人堪忧绝美妹纸15秒球赛转播画面爆红,挖出本人后却失望了...男儿爱枪浙江放大招!放宽投靠落户,杭州城区取消积分落户名额限制,实行户籍准入年限累计互认...有何深意?eBay 改造“2.5 亿次访问”页面:工作效率翻倍、变更成功率飙升加拿大新版护照亮相!页面图案大变样 今秋可在线更新护照!一些 Python 代码加速工具!杭州取消积分落户名额限制妹纸凭球赛转播的15秒绝美画面爆红,网友挖出本人后却失望了...您也寻母?国产换皮《哈迪斯》上线Steam页面!《那个游戏6》官方暗示发售日!在PPT页面中添加了这两个动画,直接把老板惊呆了!游戏聊天社区Discord宣布改进系统 要求所有人更换用户名全面爆发!180天赚205亿晨游---睡眠的重要性Milkrun起死回生?!品牌及客户名单都被Woolies买了!炎亚纶被控“偷拍16岁少年性爱片”!网红露面爆:毁我人生!他回应了新一代火箭贮箱完成低温爆破试验;三星堆近600件文物将首次亮相丨科技早新闻妹纸凭球赛转播的15秒绝美画面爆红,网友挖出本人后却失望了细细密密的光丨第二十八章 粉墨登场(上)进军美利坚! 15万非法移民冲击美墨边境,混乱场面爆发枪战致4死!官方单日逮捕超1万创纪录!拜登: 会乱套!祝贺!爆破试验成功完成长篇小说《如絮》第一百二十二章 哈尔滨-1954年 1 无能为力PPT页面里只有一句话,当我用AI配图后,绝了!希沃学习机新品首发福利!定制款键鼠、学习台灯等买学习机就送,限一周!加密币交易所CoinEx 将退还纽约用户逾110万元产品经理必会的3大流程:业务流程、功能流程、页面流程(附案例)妹纸凭球赛转播绝美画面爆红,网友挖出本人后却失望了刚刚!联合国警告:全面爆发!8000亿巨头重大宣布,AI冲击波已来?太意外,特斯拉突然涨价自觉做学习遵守党章的忠实践行者!市委主题教育专题学习研讨会暨中心组学习会举行机器人永生67th 马拉松 — 愚人节马拉松51%常见密码AI一分钟内破解,快看你的密码是否安全?刚刚, 悉尼发生3.1级地震! 居民: 巨大的爆破声, 整个房子剧烈摇晃!公安部:全面放宽大城市落户条件,完善特大城市积分落户政策,鼓励取消年度落户名额限制“网曝炎亚纶对17岁男生下手?!”网友夺笋:这是烂尾楼爆破了啊!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。