在实际环境中,爆破会遇到很多种情况,这里只说其中最简单的一中:用户名密码登录,无验证码,无次数限制的登录情况。
在下面,主要从实际操作的角度,结合一些在实际工作中可能用到或者说需要具备的知识进行记录。进行一个经验分享(自个摸索总结的,没人带,瞎弄)。
Java语言编写的一个工具
在burp工具下载安装之前,确保自己的电脑本地安装了java环境
汉化:找到以前的版本的汉化包来用,操作基本一致(在新版本上可以汉化,可能部分地方会有异常,不要纠结)
可以执行一些自动测试和半自动测试(fuzz测试)
Burp 可以用来进行攻击,如:SQL 注入,cookie 欺骗,提升权限,会话劫持,目录遍历,缓冲区溢出。拦截的传输可以被修改成原始文本,也可以是包含参数或者消息头的表格,也可以十六进制形式,甚至可以操纵二进制形式的数据。(不仅仅是抓包)
代理设置:
burp:
默认代理设置:127.0.0.1 :8080
浏览器设置代理的几种方式:
火狐:1,改设置,2,插件 :FoxyProxy(推荐)、FireX Proxy、Proxy Swither等
谷歌:1,改设置,2,插件:SwitchyOmega(使用中)-(下载需要f-q)
代理https流量需要向浏览器导入证书,证书获取:浏览器里输入:http://burp(浏览器,burp设置好代理后,burp开启代理)
burp排除干扰流量:
最简单最有效的方法:burp里面设置双向的拦截规则并启用(通过浏览器代理插件也能做到,后面再说)
意义:方便我们使用同一个浏览器一边做测试,一边找资料,同时最重要的是让burp不夹杂其他流量(小伙伴一定遇到过不停放包的场景,这是因为其他流量也被burp接收了的原因)
pikaqiu靶机环境,使用phpstudy搭建,搭建在本机,更改本机host文件,使用网址进行访问。
浏览器打开代理,burp开启拦截,这个时候我们burp的界面一般是这样的,有其他网站的干扰,下图可能描述有点差异,找到大致的就行。
做好后是这样的:
在做这之前,最好先设置好拦截规则,否则你放包的时候会出现一堆的包,尤其是在还有打开其他网页的情况下,设置好后,不仅可以实现代理,还可以查资料(同一浏览器),很舒服。(踩坑:什么浏览器搭理插件设置名单,burp右键选择不拦截此ip,域名,都不如手动设置规则来得干净)
设置好规则后,在目标的登录页面输入用户名密码,然后开启burp拦截,再点击登录,获取到登录包。
右键发送到Intruder模块:
攻击模式白话解读(添加$,清除$就不说了):
第一个:适合已知用户名,爆破密码,或者已知密码,爆破用户名。如果设置了多个标志,变量,会依次测试每个变量,另一个变量保持不变。
第二个:你觉得用户名密码可能是一致的,就可以用这个模式(爆破的时候用户名密码的载荷是一致的)
第三个:用户名密码使用不同的爆破文件,但不会进行组合(比如用户名5个载荷,密码8个载荷,但只会发5个请求,且这些请求里面载荷不会组合,只会按:用户名爆破文件里第一个载荷搭配密码爆破文件里第一个载荷这样进行搭配,顺序对应,且发包数(请求数量)等于二者最小载荷数)
第四个:第三个的进阶,会组合,交叉。
下面以第一种方式进行测试:
选好攻击类型,选好变量:
有效负荷选项(Payloads tab):
(载荷类型会使下面的载荷选项发生变化。)
这个选项是用来配置一个或多个有效负荷的集合。如果定义了"cluster bomb"和"pitchfork"(3和4)攻击类型,然后必须为每定义的有效负荷位置(最多8个)配置一个单独的有效负荷。使用"payload set"下拉菜单选择要配置的有效负荷。
(tips:遇到前端加密的(或者验证码可以复用的,密码前端加密的也适合,用户名一般为明文传输的多),网页源码里面找加密方式(找相关js脚本,看代码),看懂加密流程,然后写代码,把原先的密码明文字典用源码里的加密方式进行加密,然后在有效载荷类型里选择外部文件的方式,也可以进行爆破)
载荷处理:
对生成的Payload进行编码、加密、截取等操作
(tips:如果密码属于md5加密,这里也可以设置,选择对载荷进行哈希,然后选择md5方式再进行爆破,其他功能可以自己挖掘,很多)
载荷编码:
你可以配置哪些有效载荷中的字符应该是URL编码的HTTP请求中的安全传输。任何已配置的URL编码最后应用,任何有效载荷处理规则执行之后。 这是推荐使用此设置进行最终URL编码,而不是一个有效载荷处理规则,因为可以用来有效载荷的grep选项来检查响应为呼应有效载荷的最终URL编码应用之前。
设置载荷类型为简单列表模式,手动输入载荷并添加:
tips:Grep - Match 在响应中找出存在指定的内容的一项。快速定位具有差异的响应包(也可以看长度)
发起攻击,攻击结束后的结果:
在以后的爆破中,我应该会这样做:
首先burp设置好拦截规则,排除其他流量的干扰专注于目标的数据,然后抓登录包,看登录包的特点,或者是登录方式的特点,可能会遇到加密,次数限制,多因子验证,验证码等问题,不会就多找找资料,然后确定攻击方式,之后重点关注爆破模块里的有效载荷和选项两个功能页面,根据实际情况修改相关的配置,之后就是开始爆破。
单纯的用户名密码爆破,流程是很简单的,很容易明白,但是在实际环境中用起来,也不是很容易的,先说字典的定制化,字典的定制化也是一门学问,burp里面的自带的字典是不够用的,其次,还会遇到加密的问题,前端加密还是后端加密,怎么绕过,再就是次数限制问题,还有验证码问题,多因子验证问题等等,后面只会越来越难,所以得把基础打好,不仅需要学好理论,也要对工具有足够的熟悉。
通过这次实践,我最大的收获应该是把burp的前几个模块的功能页面,按钮功能,选项给全过了遍,能试的都试了,加深了对burp的了解,使用。爆破方面就没啥值得说了,只是最基础的。