爆破(登录验证)

Brute Force:(暴力破解)简单来说就是用大量的身份认证信息来不断尝试登录目标系统,如果幸运,将得到正确登录信息(账号与密码)。一般采用字典(还有大量登录信息)的工具进行爆破。

一、手动爆破(借助burpsuite)

1.首先配置好Firefox和burpsuite,打开爆破页面,输入一个随机账号与密码进行捕获。Burpsuite拿到请求:


image.png
image.png

2.将请求参数的账号与密码部分设置为payload位置。如下:


image.png

3.在D盘下放置两个txt字典,有两个,一个是user.txt, 一个是passwd.txt,然后里面的内容是如下:


image.png

image.png
image.png

4.设置导入:第2个字段同理。


image.png

5.设置flag,如下: (因为错误提示Username and/or password incorrect.),所以字符设置为incorrect。


image.png

6.进行攻击:如图,可看到admin,password的组合是没有incorrect标志,说明是成功的。
image.png

7.试一下在前端:如图成功爆破:
image.png

二、防御陷阱

1、验证码放在前端:
一般会在用户登录页面放置验证码,来防止攻击者自动化脚本攻击。但是如果验证码判断的逻辑是在前端JS,那么这也是可以被绕过的。因为如果用burpsuite捕获到请求,伪造后进行重发包,那么验证码就没作用。
2、后端验证码:可能会出现验证码错误,但用户名密码正确,所以登录了,那么这逻辑也是有问题的。
3、加token的认证:如果token是在前端用户还没有进行认证的情况下,直接返回给前端,比如在一个<input type='hidden'>的标签里,那么这个token只要被获取到,就可以被利用,直接获取到重发包。

三、正确防御

1、设置密码用户名的限制,比如长度必须在8位以上,字母加特殊字符与数字的组合等
2、要有验证码,但验证码要写在后台,逻辑要正确,且不能被猜测
3、要有错误限制,比如连续登录5次密码错误,账号就应该被锁定5分钟这样的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.登录方式 (1)登录方式 一般有以下几种登录方式 传统的账号密码登录,如下面的知乎账号/密码 登录,账号可以是...
    Daniel_adu阅读 8,505评论 4 23
  • 一套实用的渗透测试岗位面试题,你会吗? 1.拿到一个待检测的站,你觉得应该先做什么? 收集信息 whois、网站源...
    g0阅读 4,934评论 0 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,138评论 25 709
  • 登录的业务逻辑 { http:是短连接. 服务器如何判断当前用户是否登录? // 1. 如果是即时通信类:长连接....
    jianshufei阅读 1,850评论 0 2
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,275评论 22 257