协议?爬虫?模拟登陆?来,这里都给你准好了
本帖最后由 IvenLuck 于 2019-12-31 22:55 编辑1.选择目标站点:http://www.scjxjypx.com/
2.进行登录,并抓取数据包
火狐浏览器按F12然后输入账号密码,点登录,可以看到抓了很多数据包
可以看到,第一条请求的请求文件名中含有login的字样(查字典可知大意是:登录有效检查),其次该请求还是post方式,so。。。。。他最有嫌疑是登录请求的数据包,我们点看看看
3.观察提交的参数
嗯。。。。。
差不了了,这就是登录请求
4.观察此次请求的响应
嗯。。。。。
登录成功返回的状态是status:success,我们也确实登录成功了,再次验证这就是登录请求
5.再观察此次请求的cookie
嗯。。。。
我们发现此次请求有些响应的cookie,这好办,但是怎么还附带了请求cookie?这是哪里来的?
6.问题来了,观察登录过程,我们发现两个问题:①密码是怎么加密的?②请求的cookie是什么时候被设置的(因为我们发现提交的参数中含有cookie中的字符,这一定是在登录前就被设置到本地的,可是,是哪里来的呢。。。)
7.先解决登录密码加密的问题吧
我们退出登录,然后审查元素,看这个登录按钮被点击之后都做了什么
开启审查元素功能(就他,就这个大箭头指的小箭头)
选中登录按钮,点击
我们发现这个登录按钮有些事件,点开看看
嗯。。。。。
就一个,比预期少,嘿嘿~~
点击箭头指的那个会拐弯的箭头,我们看看具体代码
完了说了,先点开前边的三角号,简单看下代码
嗯。。。。
就这个了,看到前边的蓝色正方向和三角形组合奇怪按钮没?(点前边的行号就能在这行下断点了,你不知道什么是断点?自己百度去{:1_932:})
下好断点后,我们去点登录按钮
看到没?我们已经遏制住登录执行的流程了,接下来按F11(单步运行),找关键代码(啥是关键代码?等下,我给你看)。。。。。
流程走到这里,发现有个检查用户的函数(嗯。。。),F11跟进去
如果你接触过css你就会知道,这是在获取你输入的账号密码的,并且有个很关键的字眼MD5,再看他处理过的账号密码,有没有很熟悉?
再往下看。。。
嗯。。。。
ajax?这不就是JS中的异步请求吗?
url: "/loginValid?t="+new Date().getTime(),?这不就是我们刚刚分析的登录请求的url吗?
这样的话。。。。。
我明白了,密码确实是用MD5进行加密的,并且还需要转成大写字母
找个在线MD5加密的网站,进行验证:
验证完毕,确实100%只是对密码进行了MD5加密
再回头看登录请求的数据:
就差那个什么ID还不知道了,分析暂时告一段落,要想知晓后事如何,且听下回分析
下回分析来了来了~~~
既然哪个什么id是我们登陆之前就存在本地的,那我们开个隐私窗口,从头抓一下请求(诺,就这样打开隐私窗口)
然后在地址栏输入(粘贴)进去网址
好了,开发者工具也已经打开就绪了,来吧,狠狠的敲下你的回车(坏了不赔啊)
嗯。。。。和我想的一样,果然出现了一万个请求。我们顺着这些请求慢慢往下看,你会看到第一个类型为HTML的请求,点开头,响应就是主页面,但是
这个请求返回的页面竟然没有登录部分。。。。诡异,我们接着往下在类型是HTML的请求。。。。
原来你在这里,我们看下源码,被渲染过的花里胡哨的页面往往会遮盖掉很多对我们有用的信息
嗯。。。。有点多,我们大致看下,你会发现一个叫form的标签(这他妈不就是表单吗?得好好看看)
请求方式是post,其中有个标签,名字是input,type是隐藏,id就是那个什么id,value竟然就是那个神秘的数字151,我去原来是写死的啊。。。。
再看下边,什么username,password完全就是登录请求的参数啊,攻城狮你确定这么省劲好吗?也不弄个js好歹把登录请求部分藏一下啊,哈哈哈~~
到此为止,登录所需要的所有参数都已经分析完毕,你会了吗?
接下来就可以用代码来实现传说中的协议登录了(协议?这不就是个爬虫最近本的功能吗?被传得神乎其神{:301_1010:})
如果你觉得有用就投个币吧{:301_1003:}
本帖最后由 hafeng45 于 2019-12-31 21:22 编辑
你这个用火狐的开发者工具吧。我用火狐的开发者工具的时候,经过和你的相同,如下图:
但是用chrome的开发者工具时,发现绑定的事件并不是“http://web.chinahrt.com/js/login.js:……”,而是直接绑定到jquery中去了,咋回事?图片如下:
IvenLuck 发表于 2019-12-29 16:54
不急,咱从刚进入网站首页的时候就开始抓包,看看能不能找到线索,随后再分析
感觉那个值是固定的,多抓几次,换到linux下面用curl重发一次请求看看 6666666666!!! 666666,学习 platformid可能是操作系统的类型 jidesheng6 发表于 2019-12-29 16:53
platformid可能是操作系统的类型
不急,咱从刚进入网站首页的时候就开始抓包,看看能不能找到线索,随后再分析 jidesheng6 发表于 2019-12-29 16:59
感觉那个值是固定的,多抓几次,换到linux下面用curl重发一次请求看看
额。。。。我只会用windows。。。。
确实是固定的,目前没见他变过
学习了,正在研究这方面的内容呢 感谢楼主分享!