工具介绍
BrupSuite 是用于攻击web应用程序的集成平台,包含了许多工具。BurpSuite为这些工具设计了许多接口,以加快应用程序的过程,所有工具都共享一个请求,并能处理对应的HTTP消息(就是抓包改包,这应该是BrupSuite用的比较多的。)、持久性、认证、代{过}{滤}理、日志、警报。
BrupSuite的工具箱:
Proxy–是一个拦截HTTP/S的代{过}{滤}理服务器,作为一个在浏览器和目标应用程序的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
Spider–是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
Scanner[仅限专业版]–是一个高级的工具,执行后,它能自动地发现web 应用程序的安全漏洞。
Intruder–是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
Repeater–是一个靠手动操作来补发单独的HTTP 请求,并分析应用程序响应的工具。
Sequencer–是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
Decoder–是一个进行手动执行或对应用程序数据者智能解码编码的工具。
Comparer–是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。
下载安装
1、下载安装
burpsuite
2、安装并配置java环境
调试(也可能无需调试—直接测试)
在 “系统变量” 中设置 3 项属性,JAVA_HOME、PATH、CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。变量设置参数如下:
- 变量名:JAVA_HOME
- 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91 // 要根据自己的实际路径配置
- 变量名:CLASSPATH
- 变量值:.%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; //记得前面有个"."
- 变量名:Path
- 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
这是java环境的配置,(如果学习java编程,就可以启动Eclipse了,它会自动完成java环境的配置。)
接下来就是测试JDK是否安装成功win+R或者在“开始“-”运行“,键入cmd输入命令 java -version 或者 java 、javac等命令,出现以下信息,说明环境变量配置成功
打开注册机burp-loader-keygen-2_1_06.ja
先复制license里的内容,再将license的内容复制到Enter license key,然后点击next。
后在窗口“Manual activation”复制“copy request”的内容,返回到激活的窗口,把“copy request”的内容复制到“Activation Request”,这时“Activation Response”自动产生激活码
运行该脚本
若还是提示需要输入license key,通过该程序运行软件
proxy代理功能介绍
注:新版本burpsuite自带浏览器,使用自带浏览器无需设置该步骤
默认的代理端口
浏览器设置代理
设置描述
Target功能使用
站点地图
添加监控,只监控
先添加到监控,然后从监控中移动到排除表中
暴力破解Intruder
四种不同的模式可以供选择
- sinper使⽤⼀个字典,主要是将标记的数据进⾏逐个遍历替换
- 例:爆破次数=标记字段数*字典字段数量
- Battering ram使⽤⼀个字典,将包内所有标记的数据进⾏同时替换再发出
- 例:爆破次数=字典字段数量
- Pitchfork对每个标记字段单独设置字典,按照⼀⼀对应的关系取最少的组合
- 例:爆破次数=最少的字段字段数
- Cluster bomb使⽤穷举法,对每个标记字段都遍历字典
- 例:标记三处,第⼀处字典3个,第⼆处字典2个,第三处字典3个,爆破次数:323
基于表单的暴力破解
- 单表单使用:sinper
- 多表单使用:Cluster bomb
随意输入用户名和密码,然后通过burpsuite进行抓包拦截
对http包进⾏爆破,在PROXY界⾯进⾏抓包,右键发送到Intruder
Intruder会⾃动识别可能需要爆破的参数,并⽤§符号圈起来
我们可以⽤clear清除在选定我们需要爆破的字段点击add进⾏爆破
⽐如我们选定admin和password的参数进⾏爆破
选定好参数点击payloads标签⻚,如果我们有爆破的字典就默认Simple list 当然我们还可以选取各种类型的爆破字段,⽐如选取Numbers,from填写1 to填写1000,step填写1,就意味着我们爆破数字从1到1000,每次爆破增加⼀位。
这⾥我们使⽤字典 悬着load的⽅式选取⾃⼰的字典,我们也可以复制字典选择paste来粘贴
选择完成点击start attack进⾏爆破,会弹出爆破信息的界⾯,最下⽅是爆破的进度条,我们可以通过length这⼀列看出返回包在password时和别的包返回⻓度有很⼤的区别
结果排查
- 可以通过反馈的“length值”的长度进行分析,对于筛选出长度明显不同的
- 可以通过反馈的参数”进行删除,参考“返回结果过滤(新版)”
带有token值的爆破
Token通常指的是令牌、标记或标识符。
- 在许多技术领域和应用程序中,Token被用作身份验证、授权、数据传输等目的。
- 例如,在Web开发中,Token通常用于API身份验证和授权
- 由于携带token值爆破,并且token值是不断变化的(一次一密),因此需要识别token值,并将爆破并发值改为1
识别Token值