爬虫入门之查找JS入口篇(一)

从今天开始,准备写一系列的爬虫学习文章,仅仅面对初学者,大佬还请飘过。话不多说,直接开始干

目标网址:https://m.gojoy.cn/pages/login/index?from=%2Fpages%2Fuser%2Findex

目的:模拟登陆

工具:Chrome浏览器,油猴插件

第一步:打开Chrome浏览器,地址栏输入网址,并按下F12,打开调试器,再按下回车,进行访问。

你会看到如下图的现象:

640?wx_fmt=png

问:这是个反调试,怎么过?

答:设置条件断点,轻松过。

具体操作:在 3 这个 字数上面点击右键,选择  Add conditional breakpoint,然后输入 false,并回车。这样就设置了一个条件断点。

如下图:

640?wx_fmt=png

这时,我们再按下 F5,让程序跑起来,这个障碍就已经过了。

随便输入一个用户名和密码,开始抓包:

640?wx_fmt=png

分析得知,其登陆接口是:https://gmall.gojoy.cn/user-service/user/login,并已post方式提交,如图:

640?wx_fmt=png

这提交的参数,是一堆看不懂的密文, 不要担心,问题不大。

一般这种情况下,我会试着去全局搜索 username 和 password,但是查找后没看到有用的信息,就不叙述了。

我们来看这个接口是如何加载的:

640?wx_fmt=png

点击上图中 headers 前面的 X,看到是以XHR的方式加载,如图

640?wx_fmt=png

既然知道了这个,我们可以打 XHR断点,输入 相应的字串,进行HOOK,如图:

640?wx_fmt=png

在打上 XHR断点后,我们点击 登陆 按钮,重新跑起来,断到这里:

640?wx_fmt=png

点击 {} ,美化下代码:

640?wx_fmt=png

美化后,看到 有个 l 参数,这个就是提交的参数。

640?wx_fmt=png

在这里往上找,是看不到什么的。一般XHR断点,我们需要往堆栈里面看调用

640?wx_fmt=png

一个一个的往上追(鼠标往下点),看他是怎么调用的。

640?wx_fmt=png

当你点到 这里(anonymous)时,会看到这样的代码:

640?wx_fmt=png

这里的a函数里面有个对象,对象里面包含了一些值,有经验的一眼就可以看出这些值是干嘛用的。我们在 a 上面打上断点,并取消 XHR 断点,再按下F5,让浏览器跑起来,发现已经跑完了,再次点击 登陆 按钮,停在这里:

640?wx_fmt=png

在控制台上分别输入 t,g,f,c,l,看看分别是啥:

640?wx_fmt=png

这里的t,g,c让我更加确信了,它的入口就在这里。

我们看看Q函数是干嘛的:

640?wx_fmt=png

是个 native code,我们在上面双击,跟进去看看(一般而言,natvie code是跟不进去的)。来到了这里:

640?wx_fmt=png

我们在这个 s 函数 return 的地方打上断点,并按下F5,发现已经跑完了,再次点击 登陆 按钮,停在了断点处:

640?wx_fmt=png

控制台下看看是什么:

640?wx_fmt=png

按下F5,切换至 Network面板,看看它提交得参数是啥:

640?wx_fmt=png

将 控制台下面的字串 和提交的字串进行比较,看看是否一致:

640?wx_fmt=png

这两个字串是一样的,说明就是这里。

至此,加密位置及函数已经找到,分析完毕。

这是一般的查找方法,比较繁琐,下面介绍一种比较简便的方法:

油猴插件 + 脚本。

注:该方法参考了 冷月大佬 的思路,其博客地址:https://lengyue.me/

请确保 浏览器已安装好 油猴插件 ,并可以正常使用。

新建脚本,输入如下内容:

640?wx_fmt=png

保存后,打开该脚本:

640?wx_fmt=png

重新进行登录,可以看到 控制台下 有了内容:

640?wx_fmt=png

我们点击userscript.html?id=8d550422-40c1-4876-9186-3f63ba473547:18

640?wx_fmt=png

再次进行登录,停到此处:

640?wx_fmt=png

堆栈如下:

640?wx_fmt=png

点击下面的 s,跟进去看看:

640?wx_fmt=png

将下面的 滚动条往左拉,拉到最开始的位置:

640?wx_fmt=png

这就是我们上面分析 的那个 加密函数 s。

一下就到这里了,是不是很快?

这篇就写到这里了,中间可能还是会遇到反调试,运行一下即可。

调试JS是个细功夫,需要极大的耐心、

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flybirding10011

谢谢支持啊999

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值