JS逆向|半自动补环境插件实战操练:某常见cookie反爬
关注它,不迷路。
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
昨天讲了V神插件的安装和简单使用,今天再讲一个案例,说说为啥我说它是半自动补环境的插件。
一.抓包分析
在这里我使用的是火狐浏览器进行抓包分析,插件安装在谷歌浏览器上面。如上图所示,一个html被请求了3次,第一次返回响应码 521,第二次同样返回响应码 521,第三次才返回请求成功的响应码 200。
再看第一个请求返回的内容:
是一段js代码,很简单,设置了cookie的值,再看第二次请求返回的内容:
同样返回一段js代码,不过很明显是一个典型的ob混淆。
稍微有经验的朋友都知道,这是一个很典型的cookie反爬,第一次请求生成一些cookie值,然后第二次请求时需要带着这个cookie值进行访问,才能返回结果。当然这个步骤可能会很多,视网站而定。
因此在这里记录一下,第一次请求后生成的cookie值:
__jsl_clearance_s:
"1648552579.045|-1|E8WWETt7hKurA5d8QJ4jRxd4x14="
第二次请求后生成的cookie值:
__jsl_clearance_s:
"1648552579.18|0|DOmfr1fhAi2pcpphyj4ZmlGDnYU="
分别把这第一次和第二次请求的结果,去掉 script 标签,保存到同一个文件里,命名为 v.js.并添加代码,打印其cookie值:
二.生成临时环境
然后,我们在谷歌浏览器上生成环境,同样的打开同一网站.
注意,先要清除掉cookie等缓存后,再生成临时环境。
将生成好的临时环境代码复制到v.js中,放到第一行代码的前面去,先屏蔽掉init_cookie 的 调用:
// init_cookie("__jsl_clearance_s=1648553749.785|0|%2Fpj3mNe71Tuua4I0W3BTEqdW0qA%3D")
然后运行:
打印太多看不清楚,置空它自带的打印函数:
var v_console_log = function(){{}}
再次打印,如图:
对同一cookie值打印了两次,而且你仔细观察后会发现,打印结束后会有明显的停顿,这种情况下,说明有定时器 setTimeout,对第二段js搜索后发现,它在这里仅有一处:
条件好的,可以将这段js代码进行还原,定时器相关代码如下:
原来它将cookie设置在定时器中运行,难怪打印的时候显示不到,我们这里将 setTimeout 这个函数进行改写:
-
var v_new_setTimeout = setTimeout;
-
-
-
setTimeout = function (a,b)
-
{
-
if (typeof a == "function")
-
{
-
a.call(null);
-
}
-
else
-
{
-
v_new_setTimeout(a,b);
-
}
-
}
并插入到这两段js代码前面。再次运行:
可以看到,现在运行后这两次的结果不同了,与上面记录的值比对,发现一模一样,至此,完美解决,nice。
-------------------------------广告分割线------------------------------------
月末了,来一波星球福利,欢迎加入。
文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq523176585/article/details/123836283
- 点赞
- 收藏
- 关注作者
评论(0)