Payloads
1.Simple list(简单列表)
自定义手工添加,Burpsuite默认列表手工添加,从剪贴板粘贴,从文件中加载
2.Runtime file(运行时文件)
直接选择一个文件加载进去即可
3.Custom iterator(自定义迭代器)
功能强大,有8个站位,每一个站位可以指定简单列表payload的类型,然后根据站位的多少,和每一个简单列表的payload进行笛卡尔积生成最终的payload,例如:有个参数值类型是username@@@password,那么就要设置3给站位
4.Character substitution(字符串替换)
根据预先定义好的字符串替换的规则,在payload执行的过程中按照规则匹配替换
5.Case modification(大小写替换)
根据预定义的大小写替换规则,在payload执行的过程中按照规则匹配替换,这期间经过规则生成的新payload是从上到下的顺序,依次是:No change(不改变使用原来的字符串),To lower(转换为小写),To Upper case(转换为大写),To Propername(首字母大写,其他小写),To ProperName(首字母大写,其他不变)
@6.Recursive grep(递归grep)
基于服务端响应的数据提取payload,然后使用提取的payload进行攻击,配置payload在options配置
@7.Illegal Unicode(非法的Unicode编码)
在进行攻击的时候指定payload里面加入非法的Unicode编码,功能选项不太好理解
8.Character blocks(字符块)-- 可以理解为字符长度
根据要求给出的一个字符串,然后指定设置产生指定大小的字符块,最终的结果展示为生成指定长度的字符串,一般用在边界测试或者缓冲区溢出中
9.Number(数字类型)
数字范围:根据要求生成序列数字,随机数字
数字格式:
十进制:
Min integer digits -> 最小的整数个数有几个,简单点理解就是小数点前面最少有几位数
Max integer didits -> 最大的整数个数有几个,简单点理解就是小数点前面最多有几位数
10.Date(日期类型)
根据要求生成一序列各种格式的日期
11.Brute Forcer(暴力破解)
生成一个包含特定字符集的排列组合,一般都是用来穷尽账号密码用途
12.Null payloads(空payload)
在每个请求中添加null,实际查看就是没有更改原始请求重复发送给服务端
13.Character frobber(字符frobber)
依次修改字符串中每个字符位置的值,每次都是在原来的字符串上递增一个该字符的ASCII码,通常使用的场景是目标系统使用了负载的会话令牌用来跟踪会话,如果修改了其中单个字符的值,不影响会话的下一步处理
@14.Bit flipper(Bit翻转)
对预设的payload原始值按照比特位的形式依次修改
15.Username generator(用户名生成器)
主要用于用户名和电子邮件账号的自动生成
@16.ECB block shuffler(ECB加密块洗牌)
基于ECB加密模式的Payload生成器
17.Extension-generated(payload扩展插件生成)
基于Burp插件来生成Payload值,因此使用前必须安装配置Burp插件,在插件里注册一个Intruder
payload生成器,供此处调用,这里测试安装的插件是Bradamsa
18.Copy other payload(复制其他的payload)
这种类型的Payload是将其他位置的参数复制到Payload位置上,作为新的Payload值,通常适用于多个参数的请求消息中,它的使用场景可能是: 1.两个不同的参数需要使用相同的值,比如说,用户注册时,密码设置会输入两遍,其值也完全一样,可以使用此Payload类型。 2.在一次请求中,一个参数的值是基于另一个参数的值在前端通过脚本来生成的值,可以使用此Payload类型
狙击手模式(Sniper)
通过使用一组Payload集合(就是Payload Sets),依次替换Payload位置上(一次攻击只能使用一个Payload位置,从左到右,从上至下)被§标志的文本(而没有被§标志的文本将不受影响),这个一般用在暴力破击账户名不变,不断尝试不同的密码进行破解,一个变量替换完成,再接着替换另一个变量;
适用场景:账户不变去暴力破解密码
攻城锤模式(Battering ram)
通过使用一组Payload集合,依次替换Payload位置上被§标记的文本(而没有被§标志的文本将不受影响),跟Sniper的区别就是如果有多个参数,Sniper模式会单个的去匹配一个参数进行攻击,上一个参数匹配完成之后再进行下一个参数的匹配,顺序是从左到右,从上至下,而Battering ram则会每个参数都同时去匹配
适用场景:账户和密码是相同的情况下
草叉模式(Pitchfork)
使用多种不同的Payload集合,在每一个不同的Payload标记位置上(最多20个),依次尝试每个Payload
具体看下的例子:
Positions:标记了两个参数,模式就是Pitchfork
Payloads:Payload Sets 有两个,每个都选择Simple list
第一个Payload set 也就是数字 1 对应的Simple list 是0-10的数字
第二个Payload set 也就是数字 2 对应的Simple list 是a-z的数字
那么最终结果如下:
攻击的结果会依次匹配填充到上面Positions设置好的参数的位置,分别为0 a , 1 b , 2 c 等等这类依次匹配,当第一个Payload set匹配完成了那么就停止了,第二个Payload set剩下的就不会再匹配了
适用场景:账户和密码是依依对应的情况下
集束炸弹模式(Cluster bomb)
同样是使用多种不同的Payload集合,在每一个不同的Payload标记位置上(最多20个),尝试每个Payload,它和Pitchfork主要区别就是在攻击的时候匹配Positions设置好的参数位置,不是依次一一对应的,是尝试各种可能的情形
例如想上面Pitchfork的例子:
攻击的结果最终如下:
0 a,0 b,0 c,0 d ...... 1 a,1 b,1 c,1 d ......
适用场景:多个账户多个密码进行穷举
Options
请求头(Request Headers)
Update Content-Length header -- 保证burpsuite在每次攻击的时候它的Content-Length是正确的
Set Connection: close - 保证burpsuite在每次攻击的时候它的每次请求连接是close,这样速度更快
上面两个参数默认就是勾选的,日常测试的过程中也是需要的
请求引擎设置(Request Engine)
Number of threads -- 设置并发线程数
Number of retries on network failure -- 网络连接失败重试的次数
Pause before retry (milliseconds) -- 重试之前时间的间隔是多少毫秒
Throttle(milliseconds) -- 请求延时 Fixed是直接指定每次攻击的延时时间 Variable 指定每次延时的一个随机时间间隔
Start time -- Immediately 立即发起攻击,in 多少分钟后开始攻击,Paused 开始攻击的时候先暂停
Grep Match (grep匹配响应信息中的关键字,打对勾)
主要是用来从服务端响应的信息中匹配攻击者设置好的关键字,如果匹配了,那么就在攻击的结果中添加新列并标明,这里最终的显示结果是新增的列下面每个攻击请求有个复选框,如果匹配上了就会打勾,否则就没有
Grep Extract(grep提取响应信息中的关键字,每行都显示)
用来从服务端响应的信息提取攻击者设置好的关键字信息,并且将有用的信息显示在每次攻击的请求列中显示,前提是有设置好的关键字,否则显示为空
Grep Payloads(提取响应信息中包含攻击时的payload的关键字)
提取服务端响应的信息中是否包含Payload值
PS:注意的是Match against pre-URL-encoded payloads,如果你在请求消息时配置了 URL-encode payloads 则这里表示匹配未编码之前的Payload值,而不是转码后的值。
Redirections(重定向)
根据实际测试情况判断在攻击测试的时候是否需要重定向。