zoukankan      html  css  js  c++  java
  • 「Burpsuite练兵场」Portswigger Web Security Academy介绍

    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等开源靶场对常见漏洞有一个大体了解再来进行进阶学习。

     

    平台概况

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

     

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

     

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

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

     

     

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

     

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

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

     

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

     

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

    Burpsuit Intruder不同攻击类型差别:

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

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

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

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

     

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

     

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

     

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

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

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

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

     

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

     

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

     

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

     

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

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

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

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

     

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

     

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

     

     

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

     

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

    总结

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

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

  • 相关阅读:
    SAP:建表时如果有QUAN、CURR类型的字段不能激活的问题
    ABAP:ALV的 Header中添加HTML内容
    iframe中cookie失效问题
    让flash自动显示代码提示的两种方式
    event.srcElement说明,方法,技巧
    ABAP:FI常用BAPI
    加入收藏夹功能(jQuery)
    ABAP笔记:BDC完整版例子
    BDC处理时用到结构BDCDATA
    ABAP 自动生成EXCEL文件并作简单格式处理
  • 原文地址:https://www.cnblogs.com/ichunqiu/p/13395725.html
Copyright © 2011-2022 走看看