目前很多的gov网站都上了瑞数6代vmp版本,本文主要讲一下整个处理流程:
1、从412页面拿到content和ts代码块和外链js(注意一定不要格式化代码,瑞数6有检测js格式),放入js文件内;
2、执行js文件,根据报错提示信息补全window、location、document等;
3、补全环境后,查看cookie生成长度,大于250的长度基本上算补全成功;
4、使用补全环境后的cookie,若返回412和400说明环境有误需重新补
暗号:5ZWG5Yqh5ZCI5L2c77yaK3YgY3pzMTg4NzEzNTgyMzU=
js补环境的代码借用何老师的代码:
function get_enviroment(proxy_array) {
for (var i = 0; i < proxy_array.length; i++) {
handler = '{\n' +
' get: function(target, property, receiver) {\n' +
' console.log("方法:", "get ", "对象:", ' +
'"' + proxy_array[i] + '" ,' +
'" 属性:", property, ' +
'" 属性类型:", ' + 'typeof property, ' +
// '" 属性值:", ' + 'target[property], ' +
'" 属性值类型:", typeof target[property]);\n' +
' return target[property];\n' +
' },\n' +
' set: function(target, property, value, receiver) {\n' +
' console.log("方法:", "set ", "对象:", ' +
'"' + proxy_array[i] + '" ,' +
'" 属性:", property, ' +
'" 属性类型:", ' + 'typeof property, ' +
// '" 属性值:", ' + 'target[property], ' +
'" 属性值类型:", typeof target[property]);\n' +
' return Reflect.set(...arguments);\n' +
' }\n' +
'}'
eval('try{\n' + proxy_array[i] + ';\n'
+ proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}catch (e) {\n' + proxy_array[i] + '={};\n'
+ proxy_array[i] + '=new Proxy(' + proxy_array[i] + ', ' + handler + ')}')
}
}
# 样例 get_enviroment("window");