记一次解决某SRC加密传输问题+对接Burp进行Fuzz

admin 2020年9月3日12:48:00评论328 views字数 2822阅读9分24秒阅读模式


记一次解决某SRC加密传输问题+对接Burp进行Fuzz

由于本文受到zyy的暴政骚扰,因此本文会废话少说,骚图少发

记一次解决某SRC加密传输问题+对接Burp进行Fuzz




打开站点:

记一次解决某SRC加密传输问题+对接Burp进行Fuzz



可以看到就一个SSO单点登录,然后简单打点测试下:

记一次解决某SRC加密传输问题+对接Burp进行Fuzz


好家伙,明文传输都给修复了,没事 问题不大  我们去翻翻JS 看看加密代码是不是写在前端

记一次解决某SRC加密传输问题+对接Burp进行Fuzz

运气很好,直接搜到了,那么直接把app.js 先格式化下代码

记一次解决某SRC加密传输问题+对接Burp进行Fuzz


然后贴到本地代码阅读工具里直接研究就行,


"0627": function (e, t, n) {        "use strict";        n.d(t, "a", (function () {            return C        }));        n("d3b7"), n("25f0");        var o = n("6510"),            i = n.n(o),            a = i.a.enc.Utf8.parse("1234588888823456"),            r = i.a.enc.Utf8.parse("1234588888823456");        function C(e, t, n) {            var o = a,                C = r;            var s = i.a.enc.Utf8.parse(e),                c = i.a.AES.encrypt(s, o, {                    iv: C,                    mode: i.a.mode.CBC,                    padding: i.a.pad.ZeroPadding                });                return i.a.enc.Base64.stringify(c.ciphertext)        }


这就是关键加密代码,可以看到是写在键值为0627的匿名函数里 

记一次解决某SRC加密传输问题+对接Burp进行Fuzz



然后是AES加密 , 那么去看看AES的加密规则 

encrypt(code(明文), key(秘钥), {                    iv: iv(偏移量),                    mode: 模式,                    padding: 填充方式                }


OK 拿上述代码对比函数里的 可以得知以下信息

密文是由AES加密而成 所需的 key和iv都是1234588888823456  用的CBC模式 填充方式为ZeroPadding 编码用的是Base64

Ps:(为了方便测试,首先需要把右键-另存当前页面,把前端保存到本地,然后改JS来一步步调试)

记一次解决某SRC加密传输问题+对接Burp进行Fuzz

比如我在这

记一次解决某SRC加密传输问题+对接Burp进行Fuzz


直接Ctrl+c ,Ctrl+v 把代码里的encrypt 改成 decrypt 然后通过console.log 来输出到控制台里 

记一次解决某SRC加密传输问题+对接Burp进行Fuzz

好,可以看到加密代码是对的,没有误差


那现在就直接通过github上的jsEncrypter项目 https://github.com/c0ny1/jsEncrypt


来对接Burp自动化Fuzz


先下载github的包 然后 Mvn package 把项目编译成插件 (记得给mvn挂上代理,因为本地如果没有编译环境时所需要的资源,Mvn会直接访问Apache中央库把所需资源下载到本地)


然后就是写PhantomJS脚本   如下:

var webserver = require('webserver');server = webserver.create();var host = '127.0.0.1';var port = '1664';// 加载实现加密算法的js脚本var wasSuccessful = phantom.injectJs('aes.js') && phantom.injectJs('pad-zeropadding.js');//所需Js文件 下载地址:https://codeload.github.com/sytelus/CryptoJS/zip/master// 处理函数function js_encrypt(payload){/*********************************************************/    var AesKey = "1234588888823456";    var CBCIV = "1234588888823456";    var CBCOptions = {        iv: CryptoJS.enc.Utf8.parse(CBCIV),        mode:CryptoJS.mode.CBC,        padding: CryptoJS.pad.ZeroPadding    }             var key = CryptoJS.enc.Utf8.parse(AesKey);        var secretData = CryptoJS.enc.Utf8.parse(payload);        var encrypted = CryptoJS.AES.encrypt(            secretData,            key,            CBCOptions        );        return encrypted.toString();/*********************************************************/}if(wasSuccessful){    console.log("[*] load js successful");    console.log("[!] ^_^");    console.log("[*] jsEncrypterJS start!");    console.log("[+] address: http://"+host+":"+port);}else{    console.log('[*] load js fail!');}var service = server.listen(host+':'+port,function(request, response){     try{        if(request.method == 'POST'){            var payload = request.post['payload'];            var encrypt_payload = js_encrypt(payload);            console.log('[+] ' + payload + ':' + encrypt_payload);            response.statusCode = 200;            response.write(encrypt_payload.toString());            response.close();        }else{              response.statusCode = 200;              response.write("^_^nrhello jsEncrypter!");              response.close();        }    }catch(e){        console.log('n-----------------Error Info--------------------')        var fullMessage = "Message: "+e.toString() + ':'+ e.line;        for (var p in e) {            fullMessage += "n" + p.toUpperCase() + ": " + e

; } console.log(fullMessage); console.log('---------------------------------------------') console.log('[*] phantomJS exit!') phantom.exit(); } });


然后把编译好的插件导入到burp中 

并测试脚本

记一次解决某SRC加密传输问题+对接Burp进行Fuzz


然后测试自动化Fuzz

记一次解决某SRC加密传输问题+对接Burp进行Fuzz

记一次解决某SRC加密传输问题+对接Burp进行Fuzz



成了。  剩下的操作就是常规化的渗透检测了,,


Ps:使用前记得取消掉自动把字符Url编码化 

记一次解决某SRC加密传输问题+对接Burp进行Fuzz



有啥问题的可以进群咨询哈~群号:585636019




  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年9月3日12:48:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次解决某SRC加密传输问题+对接Burp进行Fuzzhttps://cn-sec.com/archives/117081.html

发表评论

匿名网友 填写信息