黑板课爬虫闯关第三关
来源:互联网 发布:御龙在天淘宝商城 编辑:程序博客网 时间:2024/04/28 23:34
前面两关算是比较容易,第三关就有些难度了,因为还需要有web方面的知识才能想到方法。第二关结束后,点击下一关,出来以下页面:
乍一看还以为进错了,先不管,注册登录再说。登录后才进入这个页面:
题目说比上一关多了两层保护,我们可以看到顶部有个注销按钮,也就是说首先要先登录才能继续做题。根据我那薄弱的web知识,当时第一想法就是:第一,通过增加header伪装浏览器;第二,拿我当前登录的cookie去登录。最后华丽地失败了。
于是我开始观察在登录的时候除了用户名和密码到底还发送了些什么。打开chrome->右键审查元素->网络,然后再输入用户名密码登录,看右边面板中的Form Data,也就是我们发送的数据:
图中我们可以看到,除了发送用户名和密码,我们还发送了一个csrfmiddlewaretoken的数据,这个数据是什么呢?正好最近的web安全课里讲过csrf攻击,也就知道点。那这个csrfmiddlewaretoken是怎么来的呢?回到题目的页面,刷新下网页,在Response Headers也就是服务器响应的数据的Set-Cookie里发现有个csrftoken的字段:
我们先记住这个值,然后再登录一遍,发现发送的表单数据中的csrfmiddlewaretoken中的值就是这个:
也就是说,每次登录的时候还要拿进入这个页面服务器给你的“csrftoken”作为你下次登录时的“csrfmiddlewaretoken”和用户名密码一起传给服务器。
经过观察还发现,登录“黑板课记账”的时候用的也是相同的方法,这就是题目所说的“两层保护”。
# coding=utf-8import requestswebsite1 = 'http://www.heibanke.com/accounts/login'website2 = 'http://www.heibanke.com/lesson/crawler_ex02'wrongNotify = '您输入的密码错误, 请重新输入's = requests.Session()s.get(website1) # 访问登录页面获取登录要用的csrftokentoken1 = s.cookies['csrftoken'] # 保存csrftoken# 将csrftoekn存入字段csrfmiddlewaretokendataWebsite1 = {'username': 'user', 'password': 'password', 'csrfmiddlewaretoken': token1 }s.post(website1, data=dataWebsite1)pwd = 1while pwd < 30: # 以下步骤原理和上面一样 s.post(website2) token2 = s.cookies['csrftoken'] dataWebsite2 = {'username': 'Thare', 'password': pwd, 'csrfmiddlewaretoken': token2 } result = s.post(website2, data=dataWebsite2) if wrongNotify in result.content: print '密码%d错误' % pwd pwd += 1 else: print '密码是%d' % pwd break
1 0
- 黑板课爬虫闯关第三关
- 黑板课爬虫闯关第三关
- 黑板客爬虫闯关第三关
- 黑板课爬虫闯关第一关
- 黑板课爬虫闯关第一关
- 黑板课爬虫闯关第二关
- 黑板课爬虫闯关第四关
- 黑板客爬虫闯关第二关
- 黑板客爬虫闯关第四关
- 黑板客爬虫闯关第四关
- 黑板客爬虫闯关的第一关
- 黑板客爬虫闯关第二关
- 黑板客爬虫闯关-第一关
- 黑板客爬虫闯关
- python爬虫(5)黑板客第三关
- 爬虫闯关 - 第一关
- 爬虫闯关 - 第二关
- 黑板客 -- 爬虫闯关 -- 关卡01
- 网络加载图片缓存与SDWebImage
- [238]Product of Array Except Self
- 代码:用ListView实现SQLite的显示
- Autofac
- BP误差反传神经网络
- 黑板课爬虫闯关第三关
- Mac上的抓包工具Charles
- 【停课集训 10.14】【#4 training】
- 图像缩放算法
- 常见的Web攻击和防御总结
- 如何解决eclipse一直building spacework的问题
- 【小米校招笔试】在Excel中,列的名称是这样一个递增序列:seq={A、B、C、... Z、AA、AB、AC、... AZ、BA、BB、BC、... BZ、CA、... ZZ、AAA、AAB...
- 关于UITableViewCell的自适应高度使用后的心得记录
- leetcode