JS逆向 | 非常骚的环境自吐法(以某条最新版个人主页为例)

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

目标网站:

aHR0cHM6Ly9wcm9maWxlLnpqdXJsLmNuL3JvZ3VlL3VnYy9wcm9maWxlLz91c2VyX2lkPTM2MjMxMjAzNjE=

引言

最新版的某条反爬出来后,难倒了一大片,可谓其系列产品web端反爬检测最严格的。原来的反爬,只需要根据报错,补充环境,使之能运行即可获取到数据。但最新版的我操作过,能运行但无法获取数据。后来我全部模拟出来,只要有一项检测错误,它都不通过,改了那项后马上就通过了,说明这次它真的认真了!

其实它的套路还是原来的套路,只是原来检测了环境,但可能后端校验不严格,现在增加了一些骚操作后,后端的校验也严格了而已。既然套路一样,那我们还是走模拟浏览器环境这条路。

笔者试过利用ProxyObject.defineProperty的方法来监测JS调用了哪些环境,但这种方法监测得不够全面且不够深入,容易漏监测,一旦漏了,那其实前面监测到的可能就全盘无效了,因为不同的环境,它的控制流会走不同的路线,比如canvas的操作无法监测到,或类似下面的代码无法监测到

window.Object.prototype.toString.call.apply(window.Object.prototype.toString, [window])

下面介绍一种简单高效的环境自吐法(笔者自取的名字hhh),直接上几张效果图,前方高能,不要眨眼!!!

XMLHttpRequest操作

document操作
storage操作
window对象的各种检测方法
canvas相关操作

可以看到,再难再深入的检测,全部自己吐出来了,连它的算法过程都可以吐出来。有耐心的,甚至可以自己将它翻译还原了。而且这方法是基于浏览器自身环境,且直接在它的页面调用,生成的算法就是它的原生算法,因此只要对照着模拟到位,可以100%获取数据。

成果展示1
成果展示2

想看详细内容,请使用微信浏览:

https://mp.weixin.qq.com/s/595CjegcOLbLIyzR8DxuYw

欢迎关注我的公众号“逆向新手”,逆向系列将持续更新!

公众号

你可能感兴趣的:(JS逆向 | 非常骚的环境自吐法(以某条最新版个人主页为例))