「Burpsuite练兵场」第二节:验证机制漏洞

Burpsuite练兵场自第一节内容发布后,表哥们纷纷私信说文章内容很优质,期待作者持续更新,于是小编赶紧发布第二节内容:验证机制漏洞,对漏洞靶场感兴趣的小伙伴千万别错过了呦!

上期回顾

 

「Burpsuite练兵场」Portswigger Web Security Academy介绍

 

 

本文是 i 春秋论坛作家「dll_s」表哥原创的Burpsuite练兵场系列文章,文章仅供学习参考。

 

多因素身份验证漏洞

相较于常见的单因素如账号密码登录模式,使用双因素验证登录似乎更为安全,但由于其受攻击面的拓展,程序员自身考虑不周所造成的任何一种糟糕实现,往往会增加新的安全问题,容易出现的问题就是在第二次验证时并不确认用户是否已经通过初次验证,光听原理可能感觉比较枯燥,还是通过实验来感受多因素身份验证会存在怎样的漏洞。

2FA:2 Factor Authentication,双因子验证,是一种安全密码验证方式,比较常见的即为在登陆时除了验证密码外还要输入手机接收到的验证码登录,还有一些银行安全U盘也属于这个范畴。

实验内容

本次实验学习内容:

1、多因素身份验证中容易出现的漏洞;

2、Burpsuite扩展插件的安装及使用;

3、Burpsuite自定义宏。

实验一:绕过简单双因素验证机制

 首先配置好Burpsuite监听代理,使用实验给出的第一个账号登录。

发现需要输入验证码,点击上方的Email client查看收到的验证码并输入,成功登录,查看My account。

Burpsiute中已经记录下了这一系列访问请求,我们对其进行筛选,去掉无关的信息。

 

对每一个请求与响应报文进行分析,可以看到在/my-account?id这一请求中,id参数存在被利用的可能,使用第二个账号登录,然后直接更改id为用户名访问My account界面,成功。

 

该实验原理为后台程序并未验证用户是否成功通过二次身份验证导致的漏洞利用。

实验二:存在缺陷的双因素验证逻辑

同样配置好代理后,我们使用账号进行登录,可以观察到这样的通信流量。

 

可以看到GET /login2中的cookie头部字段中的verify参数存在利用的可能。

 

将其替换为carlos,使用Intruder模块进行爆破,使用的配置如图所示:

 

出现302状态码即为正确的验证码,使用show response in browser复制url到浏览器中访问。

 

成功以carlos身份登录,访问My account完成实验。

该实验原理为后台程序未验证用户是否通过初次身份验证导致的漏洞利用。

实验三:爆破2FA验证码

此实验等级为EXPERT(专家级),属于实验当中最高的等级,涉及到了对Burpsuite中宏的配置,但整个实验原理以及过程并不是非常困难,实验给了我们一个登录凭据,需要做的就是对验证码进行爆破。

 在实验开始之前,介绍一下Burpsuite另一强大的插件扩展功能,使用插件可以进一步提升Burpsuite在实战渗透中的能力。

本来在初次实验中使用的版本是Burpsuite1.6,结果在进行这一实验时出现了奇怪的错误,定义的宏无法使用,因此想到了安装Logger++插件以查看具体的日志信息方便排错(虽然后来还是切换到了2020.4版本)。

关于一些推荐插件以及安装介绍在网络上已经有很多相关介绍,这里就不再复述了。

使用账号登录后,跳转到了验证码输入页面,尝试两次输入后会发现自动跳转到login2中的登录界面,需要重新进行登录操作,通信信息如图所示:

 

可以观察到,我们在提交验证码之前只需重新执行GET /login → POST /login → GET /login2这个过程,即可刷新页面csrf字段以及cookie字段以重新提交验证码。

点击Project Options,切换到Sessions选项卡。

 

点击Add添加新的会话处理规则,在弹出的窗口中选择Add Run a macro添加宏。

 

之后再点击Add,选择通信流并确认(使用Test macro可测试宏是否正常运行)。

 配置完成后回到最早的窗口,点击Scope,在URL Scope中选择Include all URLs并确认。

以上是整个宏配置过程,之后在Intruder模块中Burpsuite在每次爆破前就会运行这段宏。

之后将POST /login2发送到Intruder进行配置,配置内容与上个实验相同,唯一需要注意的是需要将爆破线程修改为1,否则会出现session与csrf字段错乱的问题,因此这一爆破进程也会非常缓慢。

从Logger++扩展中的通信信息可以看到,宏已经正常运行。

 

爆破成功后同样将结果show response in browser,成功登录后访问My account完成实验。

 

总结

整个实验考察了很多对通信流程的掌握,要学会利用Burpsuite中的Proxy History查看通信流程并思考其中可能存在的问题。

另外,这两天出现了Burpsuite学院中实验Solution无法查看的问题,已经有人在论坛上进行了反馈:

 

以上是今天要分享的内容,大家看懂了吗?

posted @ 2020-07-31 11:08  i春秋  阅读(715)  评论(0编辑  收藏  举报