首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python的反反暴力破解

python的反反暴力破解

作者头像
信安之路
发布2018-08-08 15:07:41
8780
发布2018-08-08 15:07:41
举报
文章被收录于专栏:信安之路信安之路

本文适合刚刚学完 python,光听别人说强大,但是自己没有直观感受过的人。介绍两种防暴力破解的方法,以及用 py 的绕过方法。(暂不考虑 sql 注入,不谈机器学习。)

虽然繁琐的认证不一定意味着安全,但是方便省事的认证往往意味着不安全。

暴力破解漏洞是广泛存在的,危害较大的漏洞。虽然利用该漏洞需要付出的时间成本可能难以接受,但是如果结合社会工程学,完全可能将不能接受的时间降到可接受的范围,所以其危害不容小觑。

环境要求

系统:

kali linux

软件版本:

php7 mysql5.6 python3

搭建步骤:

1、首先数据库导入 data.sql,这是所有的测试数据。

2、搭建被测试的网页用 Phpstudy 即可,把所有 php 文件放入网站根路径,确保能够正常访问。或者直接在 kali 里,比较方便,直接把这几个脚本放一块,然后在当前路径执行 php -S 127.0.0.1:80,就完事了。Py 脚本可以随意,只要执行起来方便就行。

3、php 生成验证码需要安装 gd 扩展,python3 验证码识别,需要安装 tesseract-ocr。

4、Code.php 是生成二维码用的。

代码都做了注释,有兴趣可以看一看。

form.php

简简单单的一个带token的表单。

form.php

简简单单的又一个表单。

burteforce2.1.php

处理带 token 的登录请求的脚本

burteforce2.2.php

处理带验证码的登录请求的脚本

Code.php

生成二维码的脚本

burteforce2.1.py

暴力破解带 token 的认证

burteforce2.2.py

密码字典从 kali 里随便找一个。

测试:

一、随机生成 token,作为隐藏输入,藏在表单之中,每次访问都获取新的 token,妄图防御了基于数据包重放的暴力破解。然而在强大的 python 面前并没有什么卵用。

测试步骤:

把文件放到网站跟路径,运行 py 脚本

一片喜闻乐见的登录失败。但是,仔细一看,其中有条结果的页面长度与其他不同

去正常登录尝试一下,admin 是 admin 的密码

二、绕过验证码防御基于数据包重放的暴力破解攻击。纯数字,混淆力度不够,经过处理后可以被识别,或者根本不用处理即可被识别。

测试步骤和上边没有差别,就是脚本名换了换。

写在最后的话

防范暴力破解还有其他的办法,例如如果一个 IP 地址频繁失败登录就限制其访问,或者如果一个帐号频繁登录失败就锁定该帐号,除非再次激活,否则不能继续正常使用。

但是这两种办法都有弊端,前者可以用构建一个代理池的办法来绕过(本地不好演示),后者会影响用户的正常使用。所以说,采取何种办法来防御,需要权衡。

其实最好的办法是设置一个足够强的密码,一个系统无论打了多少补丁,按了多少个防火墙,它的密码如果是 1234, 那么一切都等于零。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境要求
  • 测试:
    • 一、随机生成 token,作为隐藏输入,藏在表单之中,每次访问都获取新的 token,妄图防御了基于数据包重放的暴力破解。然而在强大的 python 面前并没有什么卵用。
      • 二、绕过验证码防御基于数据包重放的暴力破解攻击。纯数字,混淆力度不够,经过处理后可以被识别,或者根本不用处理即可被识别。
      • 写在最后的话
      相关产品与服务
      验证码
      腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档