前言
破解:通过AES对列表页内详情页链接进行加密的反爬手段
一、反爬手段
详情页链接加密
跳转干扰调试
二、分析流程
页面原链接:
http://ggzy.zwfwb.tj.gov.cn:80/jyxxcggg/985325.jhtml
跳转后链接: http://ggzy.zwfwb.tj.gov.cn/jyxxcggg/1jcrAk61aP9HW3VSnwAuKw.jhtml
分析:
1. 点击触发页面跳转,找到全局事件监听 ”click事件“,
2. 打开对应的js文件,找到加密入口,出口,
3. 分析加密逻辑,抠出放node.js上跑,跑通后分析逻辑,转python跑
三、具体流程
1…查看事件监听器,进入click事件
2.通过分析确定是目标加密内容(有window.open函数)
3.对加密过程进行分析,加以注释
$("a").bind('click', function() {
// 获取页面内原链接
var hh = $(this).attr("href");
// 判定内容是否正常,做错误处理
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]*$/;
// 查看是否有跳转标签
var ee = $(this).attr('target');
// 判定拿到的数字是否符合规则
//(test:从字符串内全局搜索匹配,返回bool类型)
if (r.test(ccc) && cccc.indexOf('jhtml') != -1) {
// 把字符串转成UTF8编码(字符串转对象)