0x01前言
目标网址查看详情页时,会对详情页的url进行加密,通过静态搜索无法解决。
0x02接口分析
2.1 目标url
b64后:aHR0cDovL2dnenkuendmd2IudGouZ292LmNuLw==
进入首页,点击交易信息
2.2请求方式get
0x03调试流程
3.1选择focus,进入后在3340行下断
无法没有拦截到加密过程
3.2搜索event.special
断下之后按f11跟进
阅读源码可以发现,就是去了a标签的href属性进行aes加密
3.4报错补全
删掉无用代码 和 获取 k 下个断点读取一下就行
0x04还原测试
和网站生成一致
0x05完整代码
var CryptoJS = require('crypto-js')
function yjp(url) {
var hh = url;
if (typeof (hh) == 'undefined' || hh == '#') {
hh = $(this).attr("url");
if (typeof (hh) == 'undefined' || hh == '#') {
return
}
}
var aa = hh.split("/");
var aaa = aa.length;
var bbb = aa[aaa - 1].split('.');
var ccc = bbb[0];
var cccc = bbb[1];
var r = /^\+?[1-9][0-9]*$/;
if (r.test(ccc) && cccc.indexOf('jhtml') != -1) {
var srcs = CryptoJS.enc.Utf8.parse(ccc);
var k = CryptoJS.enc.Utf8.parse("qnbyzzwmdgghmcnm");
var en = CryptoJS.AES.encrypt(srcs, k, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var ddd = en.toString();
ddd = ddd.replace(/\//g, "^");
ddd = ddd.substring(0, ddd.length - 2);
var bbbb = ddd + '.' + bbb[1];
aa[aaa - 1] = bbbb;
var uuu = '';
for (i = 0; i < aaa; i++) {
uuu += aa[i] + '/'
}
uuu = uuu.substring(0, uuu.length - 1);
}
return uuu
}
var url = "http://ggzy.zwfwb.tj.gov.cn:80/jyxxcgjg/992662.jhtml"
console.log(yjp(url))