目标网页:https://m.gojoy.cn/pages/login/ 将我删除i ndex?from=%2Fpages%2Fuser%2Findex
需要工具:chrome和油猴
油猴代码:
// ==UserScript== // @name Json.stringify // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @include * // @grant none // ==/UserScript== (function(){ "use strict"; var rstringify = JSON.stringify; JSON.stringify = function(a){ console.log("Detect Json.stringify", a); return rstringify(a); } })();
第一步,F12,在第三行数字上,右键选择 Add conditional breakpoint, 用于越过反调试
如果还是卡住那么,点击这个,变成蓝色
然后点击
第二步,如果已经加载完成了, 随便输入账号密码,点击登录,查看Network里的新url。发现是login为登录请求
点击查看,发现下面有一串看不懂的参数,猜测这就是将账号密码等东西进行加密得出来的
尝试一、全文搜索username , password 以找不到,失败告终
尝试二、查看以什么格式加载的
首先看到Response Headers中有个Access-Control-Allow-Credentials:true 说明这个是个跨域请求
关掉详细信息后看到是 xhr 方式加载
打 XHR断点,输入 相应的字串,进行HOOK
上述完成后,再次输入好账号密码,登录
如果没问题的话就会停在
call stack(回调调用栈)中,一个个往下点击,直到看到类似于ajax加载的格式代码
so,找到了s这个位置就很像ajax,然后在3643那个位置点击左键,设置断点
先点击让当前代码先执行完毕,重新点击页面的登录按钮
没什么意外就会停在s这个位置,从上到下将t,y,h,Q,u,d,全部在console中打印出来
看到u的值证明没找错!!!说明就是通过这里进行与后端的通信,且根据Q这个函数进行的将u内容进行不知名的操作
所以可以猜测应该是这里得出了上面request中那一串很长的参数
双击上面输出内容中native code 就会跳转到函数定义 (一般而言,natvie code是跟不进去的)
跳转后,找到这个函数return,所以点击 { ,找到对应的 } ,找到返回值位置return a[o.m[[o.m.i[";"]]].q](o.m[[o.m.i[";"]]].x),给其打上断点
然后,还是先让当前跑完,重新点击登录,然后就会停在新增加的断点位置
接下来,在console打印出返回值
出现个与login网页中很相似的参数值,那么还是让当前跑完,然后点击Network查看最新的login的详细信息,看看是不是一样的
然而很显然一模一样!!!!
所以说这个函数 , 对username和password操作后的出来的
那么此时入口发现了,之后只需要execjs包执行或者,将js代码翻译为python代码放进爬虫中操作就可以了
上面为最常用的操作
============================================================================
接下来油猴脚本操作方式效果一样,但是更快速定位!!!!
建好脚本后开启,如何使用脚本,写脚本这里暂不论述
输入好账密后点击登录,console就会打印出下图 ,然后点击红框位置,跳转后打上断点
先执行完毕后,再重新点击登录,查看调用栈,点击s
跳转后,拖动滑动条到最左边,看到位置2就和上面的所找到的js函数一摸一样,方便很多对吧!!!!