admin管理员组

文章数量:1643190

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

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

目的:模拟登陆

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

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

你会看到如下图的现象:

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

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

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

如下图:

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

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

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

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

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

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

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

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

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

点击 {} ,美化下代码:

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

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

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

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

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

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

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

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

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

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

控制台下看看是什么:

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

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

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

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

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

油猴插件 + 脚本。

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

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

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

保存后,打开该脚本:

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

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

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

堆栈如下:

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

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

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

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

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

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

本文标签: 爬虫入门入口js