Pikachu漏洞练习平台 之 暴力破解

目录

一、靶场介绍

二、靶场配置

三、靶场工具

三、靶场实战

暴力破解漏洞: 

a.基于表单的暴力破解

b. 验证码绕过(on server)服务器

c.验证码绕过(on client)客户端

d. token防爆破?

防范措施


一、靶场介绍

靶场源码链接:
GitHub:https://github.com/zhuifengshaonianhanlu/pikachu
靶场漏洞介绍:

二、靶场配置

1.安装phpstudey,在GitHub上下载源码。

2.下载完成后放在phpstudy的WWW(网站)目录下,完成配置与初始化。
靶场搭建链接 pikachu靶场搭建

三、靶场工具

        好的工具可以让我们事半功倍,我们需要安装一些工具。

BurpSuite渗透工具 安装使用教程   FoxProxy 火狐插件

 bp

先配置一下监听端口 本机127.0.0.1 端口8080

 FoxProxy

插件要和bp的ip和端口要一致

三、靶场实战

暴力破解漏洞: 

1.pikachu官方概述

        

      说白了就是 暴力破解:暴力破解=连续性的尝试+字典+自动化。
就是去猜可能正确的密码,不断尝试账号和密码,找出正确的账号密码,达到暴力破解。最重要的部分就是字典,好的字典可以大大加快破解速度。

字典:  1.弱口令,弱密码。 2.社工库  3.敏感信息,手机号,生日,身份证号,等等。

好的,我们来看题目

a.基于表单的暴力破解

1.开始

我们先随便登入一个 然后用 bp抓包 分析数据包 加字典 直接跑

输入之前打开bp  打开插件 FoxProxy

 账号admim 密码123 它返回账号或密码错误

 回到bp 看抓包情况

我们已经抓到了数据包 可以看到 http Cookie username password 登入状态等

2.爆破

把数据包发送到Intruder

选择爆破模式

一个字典

Sniper:字典数据一一对应填入 一对一
Battering ram:字典遍历选中的参数

字典数取决于参数选几个
Pitchfork:每个字典逐一对称匹配,如A字典a对应B字典b,不相交,
Cluster bomb:每个字典逐一交叉匹配,如A字典的所有位与B字典的所有位都匹配。

我们不知道账号密码,所以选第4个。

 

点击Clear 清楚本身自带标记 

 给我们要爆破的地方add添加标记$

 给1 2 分别加入字典

点击start attack开始爆破

 成功爆破!!!可以点下length排下序,就35050长度不一样

所以我们的账号密码就是 admin 123456

 登录成功

b. 验证码绕过(on server)服务器

验证码的作用:
防止登录暴力破解
防止机器恶意注册
验证码大概的的认证流程:

    客户端request登录页面,后台生成验证码:
    1.后台使用算法生成图片,并将图片response给客户端。
    2.同时将算法生成的值全局赋值存到SESSION中;校验验证码。
    1.客户端将认证信息和验证码一同提交;
    2.后台对提交的验证码与SESSION里面的进行比较;
    客户端重新刷新页面,再次生成新的验证码:
    验证码算法中一般包含随机函数,所以每次刷新都会改变。

 1.随机输入账号密码,抓包,分析。

2. 将数据包发送到repeater中,对验证码进行判定。

3. 修改验证码点击,多次尝试查看返回的信息,只有输入正确的验证码时才会出现username or password is not exists 就算换个密码登入也会出现。

验证码无

更换密码输入

 验证码写错的和空都不行,后台有验证

 

4.方法正常爆破 但必须输入正确的验证码,不用加标记就可以了。

 

不安全的验证码-on server常见问题
●验证码在后台不过期,导致可以长期被使用;
●验证码校验不严格,逻辑出现问题;
●验证码设计的太过简单和有规律,容易被猜解 。

c.验证码绕过(on client)客户端

和上一个唯一的区别就是这个验证码为空,为错,也会执行登录,更为简单了一些了。

 查看源码,可以发现验证码是JavaScript随机生成,点击一次函数运行一次生成一个相应的验证码

 复制到txt自动转译

 

 之后和上面的一样爆破就OK了

不安全的验证码- on client常见问题
●使用前端js实现验证码(纸老虎) ;
●将验证码在cookie中泄露,容易被获取;
●将验证码在前端源代码中泄露,容易被获取;

d. token防爆破?

token是什么 点击这里 Token  

token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。

1.我们还是在页面输入用户名和密码,点击登陆并使用burpsuite查看。

2.从提交请求的响应包中可以得到最新的token值,该token值需要在下次请求的时候使用,既身份标识是实时更新的。

    现在我们一方面要不停的替换密码信息,另一方面要不停的从响应包中获取最新的token并替换,将该请求发送至intruder模块和Repeater模块进行分析。

 经过分析,我们要设置3个参数变量,账号 密码 token ,账号密码可以用简单的爆破,token我们要提取它的规则。

操作如下

3.爆破模式Attack type选用Pitchfork,各自使用各自的互不影响。

4.在Options选项中,找到Grep Extract栏,添加一个从响应包中的提取规则。点击Add,并从响应报文中找到对应的token信息位置,选中之后会自动生成匹配规则,然后点击OK确定。确定之后会在Grep-Extract列表中出现这一规则。

5. 请求包与自己的响应包有对应顺序,需要单线程,在Resource pool中添加一个单线程,线程数量修改为1。

 账号 ---1----simple list---字典

 

 密码 ---2 ---simple list ---字典

 token ---3----Recursive grep----规则

爆破

  爆破成功!账号admin  密码123456

token只要是用来防御csrf(跨站请求攻击),但无法防止暴力破解。因为当将随机产生的token参数加入到请求包中时。每次请求攻击者只能够盗取到被攻击这的cookice而不能伪造当次请求的token,这是因为token是由服务器随机生成的,只有匹配当次的token,服务器才会与客户端进行连接,否则拒绝连接。而token无法防止暴力破解的原因是因为token是随机生成的,攻击者只要能够想办法获取到前端的token值即可进行暴力破解。

防范措施

●设计安全的验证码(安全的流程+复杂而又可用的图形) ;
●对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2小时;
●必要的情况下,使用双因素认证。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值