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

2020-07-29 5,084

Portswigger是著名神器Burpsuite的官方网站,实际上也是一个非常好的漏洞训练平台,但在国内信安圈却鲜有提及,因此从今天开始i春秋论坛作家「dll_s」表哥将对其进行全面系统的介绍。

官网链接:https://portswigger.net/web-security

以下简称该平台为Burpsuite学院。

为什么称它为Burpsuite学院呢?因为其训练内容非常侧重于对Burpsuite各项功能的深入挖掘,这本身和创建该平台的初衷也是分不开的。另外,其实这也是《黑客攻防技术宝典Web实战篇》的实战训练平台,配合使用学习效果更佳。

Burpsuite学院优点:

1、实验环境多样化,覆盖广内容多,同时使用真实网络环境,具有很强的实操性;

2、针对每个实验漏动原理有相关介绍,且针对具体操作细节也有详细说明;

3、包含许多其他漏洞靶场所没有的漏洞思路,总之就是内容非常的全面。

Burpsuite学院缺点:

1、访问可能比较缓慢,需要自行解决;

2、官网页面均为英文,对于国内的小伙伴可能不是很友好,不过对于学习信安接触英文也是在所难免的,长期的接触下就会自然而然的发现专业英语越来越流利;

3、需要一定的基础,比如对于Burpsuite工具的基本操作。同时由于其每个环节下有多个实验环境,练习进度往往会比较缓慢,还是建议新手可以先使用dvwa,pikachu等开源靶场对常见漏洞有一个大体了解再来进行进阶学习。

image.png


平台概况

Burpsuite学院目前含有漏洞实验内容160多个,基本涵盖了各个方面的Web漏洞,并且会不断更新。

image.png


同时还有个人专属的学习情况跟踪面板。

image.png


使用方式也非常简单,使用邮箱注册账号登录之后即可开始学习,下面就抛砖引玉地简单介绍下三个用户验证漏洞实验。

首先访问Burpsuite学院,点击进入Authentication模块,可以看到相关漏洞背景介绍信息,下拉可以看见包含了三个实验环节。

image.png

image.png

我们选择第一个:基于密码验证的登录漏洞,可以看到总共包含了三个实验内容。下面依次对这三个实验进行介绍。

image.png


实验一:通过responses内容不同枚举用户名

进入实验可以看到对该实验的简单介绍,该实验的内容是用户名枚举和密码爆破,同时提供了候选用户名和密码列表,还是比较简单和经典的。点击Access the lab即可进入实验,点击solution可以查看具体的实验操作指南,还是建议先自我尝试实验内容,遇到难以攻克的问题再来这里找思路。

image.png


进入实验后是一个简单的博客网站,点击右上角Account login进入登录界面。配置好Burpsuite监听代理,先使用弱口令进行尝试root:123456,可以发现错误信息提示用户名错误。

image.png


以此推测该验证登录会指明具体的错误原因,可被用来枚举用户名,使用Burpsuite拦截发送到Intruder模块,配置好payload位置。这里使用的是sniper攻击类型,固定密码,使用网站提供的用户名列表进行枚举。

Burpsuit Intruder不同攻击类型差别:

Sniper狙击手:使用一组payload集合,一次只将payload填入一个位置;

Battering ram:同样只使用一个payload集合,不同的地方在于每次攻击都是替换所有payload标记位置;

Pitchfork:允许使用多组payload组合,在每个标记位置上顺序遍历其payload(payload数量对应);

Cluster bomb:允许使用多组payload组合,会循环遍历每个payload位置组合。

image.png


对枚举结果按responses length进行排序,即可发现可用的用户名。

image.png


固定用户名为枚举结果,使用相同方式对密码进行爆破,观察结果可以发现一个异常302状态,此即为正确的密码。

image.png


注意:在此请求之后发送的请求响应均为400状态码是由于服务器在一次正确登录后刷新了session cookie,因此导致了后续提交请求中csrf字段与session的验证错误。所以我们在使用正确账号登录时也要注意需要刷新页面csrf才可以成功登录,登录后点击访问My Account即可看到实验状态更新为solved也就是完成了。

实验二:基于responses内容的细微差别枚举用户名

这一实验与上一个相比,response响应内容长不断变化的,我本来以为是通过compare模块比较各响应差别寻找正确的用户名,也确实发现了一些报文内容相较于其他报文多了一段注释”<!-->“,但是存在这段注释的报文非常多,因此并不具备可行性,下面介绍正确解法。

跟之前一样尝试弱口令,发现错误提示变为了Invalid username or password.,无法简单枚举。

image.png


使用Burpsuite拦截,发送到Intruder模块,固定密码进行用户名枚举,发现长度一直在变化。

image.png


点击Option按钮,使用Grep-Extract功能,点击Add按钮,选择如图所示区域(此步骤其实就是本次实验的精髓,可以思考下为什么要选择这一区域,因为这是服务器验证用户名密码后的信息交互区,针对正确和错误可能后台程序员会编写两个界面,而这微小的差别就造成了信息泄露)。

image.png


设置好后返回Result界面,拖动即可发现其中一个返回语句中少了一个句号,这个角度实在是非常的刁钻,直接观察确实是很难发现。这里其实也可以复制交互信息区域内容到下方查找栏中,然后通过上下键遍历结果,发现0 matches的即为异常请求。

image.png


后续操作就不再复述了,基本与上一实验类似,登录访问账号信息页面即可完成实验。

实验三:基于响应延时的用户名枚举

此实验等级为PRACTITIONER(从业者),使用了IP防爆破保护,可以使用伪造X-Forwarded-For字段绕过。对于用户名枚举,这里的实验原理为:程序后台进行验证登录时,会先验证用户名是否正确,错误则立即返回失败信息,正确则到数据库中比对密码,而通过使用超长密码增加这一查询时延即可对用户名进行爆破。

进入实验,使用弱密码尝试多次登录后会发现遭到锁定,请在30分钟后尝试。

image.png


发现可以通过伪造X-Forwarded-For字段绕过IP保护。

image.png


设置payload,使用Pitchfork模式,payload set1设置为1-100的数字枚举,用于生成动态IP,paylaod set2为用户名列表。

image.png

image.png


对于Intruder运行结果,点击Columns新增Response received一栏,排序后时延最大的即为正确的用户名。

image.png


使用爆破出的用户名,同样使用Pitchfork模式爆破密码,成功后登录以完成实验。可能由于之前的多次尝试仍处于锁定状态,可以抓包修改X-Forwarded-For字段或者直接替换cookie访问账号信息即可。

总结

平台的基本情况就介绍到这里了,这几个实验难度并不是很高,也会有一种刷CTF的感觉,但如何通过这些实验,系统性地对Web安全进行深入评估是我们所应该在实验过程中不断思考的。

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

本文作者:i春秋聚集地

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/136268.html

Tags:
评论  (0)
快来写下你的想法吧!

i春秋聚集地

文章数:16 积分: 215

i春秋聚集地旨在为信息安全爱好者提供及时有效的信息渠道和体验平台,欢迎关注公众号(icqedu),和“i春秋学院”微博了解更多网络安全新知识~

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号