声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标网站
https://www.ldvmp.com
https://www.ldvmp.com/checkjsproxy.html
检测点
它是关于proxy代理对象的检测。
看了下是is_proxy进行检测,慢慢研究先。
先弄个全局代理hook,然后去hook:
属性读取: 对象:Window 属性:require undefined
VM220:32 属性读取: 对象:Window 属性:Set ƒ Set() { [native code] }
VM220:32 属性读取: 对象:Window 属性:Object ƒ Object() { [native code] }
暂时没有啥思路,继续看看捕获报错代码,很好发现个报错代码有proxy相关字眼。
混淆了很多,我们查看已经捕获的报错
图一报错应该是针对nodejs的,不管。图二报错是看到有个“proxy”字眼
继续看看检测不代理的对象报错看看对比
图一没有变化
图二查看报错代码是没有“proxy”字眼的
然后自己写一下Set.prototype.add去调用代理对象和非代理对象发现。
我是被代理的对象哟!!
我不是被代理的对象哟!
跟我想的一样哈哈哈太爽啦。
原理代码如下:
function isProxy(target) {
try {
Set.prototype.add.call(target, 1);
} catch(e) {
// 检查堆栈信息中是否包含 "Proxy."
return e.stack.includes('Proxy');
}
}
// 测试
const proxy = new Proxy({}, {
get(target, prop) {
return target[prop];
}
});
const normalObj = {};
console.log(isProxy(proxy)); // true
console.log(isProxy(normalObj)); // false
为此在这思路上,我还写了很多相关的检测proxy的代码,放在了星球。
鸣谢
1:控制台检测mm4.html:
2:控制台检测mm9.html:
3:控制台检测mm8.html:
4:checkOpenDevTools.html
5:https://m.ldvmp.com/env
全部通关啦!不一一列举,感谢。
感谢零点哥哥的网站,挺多知识点的,希望再来多点。零点哥哥的星球里面还有很多干货可以去学习下!!
https://t.zsxq.com/IWanI
或者联系他v:CyyWon,报我名字打骨折💗!!
最近想法
我开了个知识星球,把将本期额外的检测思路已放到了里面,有需要的小伙伴可以自行去取,最新更新了很多ja3,http2,tls、dns泄露,webrtc泄露相关知识点,固定瑞数调试,chrome控制台检测,jd的参数,阿里bxet纯算、快手滑块,Pdd—Anti,ikuai,b站login之-极验3文字,某音ab,瑞数456vmp补环境、各种网站检测原理,风控环境等等,主要是某些大佬加我问成品、思路,很多人都打着白嫖的手段去加我好友为目的,问完基本就以后没有任何的交集,这样的交好友雀氏没有任何意义。不如我直接开个星球,里面直接放我逆向的成品以及逆向的思路,这样大家各取所需,我也有点收益,意义更明确点,免得浪费大家的时间。星球如果你们遇到了什么问题的话,也可以直接提出来,我肯定以我最大的能力去回答,后续的话,随着知识星球的作品越来越多,涨价是必然的。至于一些没有特殊难点的站或app,我会直接把思路以及成品到星球里面,同时也欢迎各位大佬的技术合作,有技术,有想法的一起交流成长。保持谦逊,那是您的武器。

本文使用 mdnice 排版


