python的反反暴力破解

本文适合刚刚学完 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, 那么一切都等于零。

想测试的同学可以点击阅读原文去博客查看!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值