说明:
本文之针对新手入门了解,高手绕道。
只做技术性研究,请勿用于非法渠道。
目标
https://passport.fang.com/?backurl
前言
1、首先准备Chrome内核浏览器,我用的360极速版浏览器。
2、打开目标网址,按F12或者网页空白处右键审查元素(有的浏览器叫检查),打开开发者调试工具。
平时做爬虫应该都会,界面如下: (箭头位置打开全局搜索)
3、开始抓包实操,切换到网络(tab)清空所有记录,勾选log
4、登录界面随便输入账号密码点击登录抓包,找到请求登录包:鼠标点击,
一般新手可能找不到那个请求是登录的请求,所以建议清空记录这样网络少点好找,几个小经验:
查看请求类型 POST GET 一般登录都是POST,还可以直接过滤只显示xhr类型记录,或者直接看请求URL,这些只能慢慢积累,多做了就很快可以定位。
5、现在开始逆向pwd参数,一般全局先搜索需要逆向的参数。例如:这次需要逆向的pwd
小技巧:这次搜索结果不多,而且从文件名很容易找到答案,很多时候搜索结果会很多,难以定位可以试试,pwd = ,pwd: new pdw 。这些定义或者赋值操作,很容易就找到突破点。
做过前端的一看就知道 ajax请求。uid,pwd都在这里定义的了,直接打断点重新跑一次登录,看看这里位置都是怎么生成参数的。
6、打好断点重新登录,自动断到刚才位置;
这里要主要本次案例比较简单,一般还是不容易找到关键位置的,主要右手边堆栈区,可能以后大部分案例需要查看堆栈一步一步跟踪才能找到关键位置。
小技巧:
鼠标选择函数;可以查看返回结果,
that.username.val()刚才我选择这个函数可以看到返回账号,明文。要选择到括号。
鼠标只放在函数上,选择到括号前,可以点击提示的函数入口跟进函数内部。
7、代码分析(个人简单见解,不对之处望指正)
data: {
uid: that.username.val(),
pwd: encryptedString(key_to_encode, that.password.val()),
Service: that.service.val()