要弄清楚Burp Suite里面Intruder这个工具该怎样去配置,还有它的攻击速度要是变得很慢,可以从哪些地方试着优化,不能只把眼睛放在并发请求的数量上面,Intruder跑起来的效率,还会被Payload塞在哪些地方、攻击用的类型、字典塞了多少东西、请求之间隔了多长时间、连接是怎么维持的,还有目标服务器返回结果的速度,这些因素一起拖着走,在真正动手配置以前,最好先到Repeater那边,确认一下最基础的请求是能正常返回的,同时也要保证测试的目标已经拿到了清楚的授权,免得把请求本身藏着的问题,错误地当成是Intruder在速度上出了毛病。
一、Burp Suite Intruder怎么配置
Intruder配置起来,很关键的一个地方,是要去管好测试要用到的那些参数,还有请求的总数,要是标记的位置留得太多,攻击的类型又挑得不对,或者字典里面的内容太大,都会生出一大堆其实没什么用处的请求。
1、设置Payload位置
先进到【Intruder】里的【Positions】页面,把软件自己识别出来、但根本不需要去测的那些位置给清掉,然后再把目标参数选上,给它们加上Payload的标记。
在只测单独一个参数的时候,就不要再同时去标记Cookie、请求头,还有其他那些不相干的字段了,Payload的位置一旦多起来,由它拼出来的请求组合也会变得很复杂,后面去看结果的时候,就更难判断到底是哪个参数把响应给弄变了。
2、选择攻击类型
照着参数跟参数之间的关系,去从Sniper、Battering ram、Pitchfork或者Cluster bomb里面挑一种,Sniper这种类型,适合一个一个地去试参数;Battering ram呢,会把同一套Payload同时塞到好几个位置里面去;Pitchfork会按照好几组Payload排好的顺序去配对;Cluster bomb则会把不同Payload列表之间每一种可能的搭配都生成出来,当参数之间没有那种组合测试的需要时,就不要随随便便地去用Cluster bomb。
3、配置Payload内容
进到【Payloads】里面,先把Payload的类型挑好,再把用来测试的数据给导进去,然后去设好编码、前缀、后缀,或者字符替换之类的规矩。
Payload里头的那些内容,是应当围着这一次测试的目标去整理的,提前把重复的值、空的值,还有一看就知道不对路的东西给删掉,要是参数需要套用某种固定的格式,也应该在发出去以前就把它处理妥当,免得因为格式不对,让大量的请求一上来就被服务器给挡掉了。
二、Burp Suite Intruder攻击速度很慢怎么优化
当Intruder跑起来感觉很慢的时候,可以先去看一下响应的时间、出错的条数,还有状态码是怎么变化的,大致判断一下,到底是Burp自己的配置拖慢了,还是网络的链路有问题,又或者目标服务器那边已经在进行限流和超时处理了。
1、检查资源池设置
到【Resource Pool】里面,去看一看最大并发请求数、请求与请求之间的延迟,还有自动节流这些设置是怎么配的。
并发数要是给得太低,或者请求之间隔的时间太长,都会直接把发出去的速度给拽下来,要是把自动节流的功能打开了,还得检查一下触发它启动的条件是不是放得太宽了,调整的时候,应当一点一点地把并发往上面加,不要一回就拉得很高,那样容易弄出大片的请求超时,或者让服务器直接给拒绝了。
2、开启连接复用
在Intruder的设置里头,查一下HTTP的版本,还有关于连接复用的那项配置,用HTTP/1的时候,把连接复用给打开,可以减少那些反复去建立连接、再关闭连接所花掉的时间,要是目标那边是支持HTTP/2的,就可以拿两种协议下面的响应速度和稳定性放在一起比一比,再决定到底用哪一种办法。
3、减少无效请求
重新检查一下Payload摆的位置、攻击的类型,还有列表的规模,把那些没有必要的组合范围给缩小一些,比方说,两组Payload各自都装了一千条内容,要是用了Cluster bomb,就会生出来整整一百万条请求,到了这个地步,任务跑得慢最主要的原因,已经不是并发不够了,而是请求的总量实在太大,把它分成一批一批地跑,并且把测试的范围限制住,很多时候比闷着头去提高并发要更管用一些。
三、Intruder速度调整后怎么检查
把执行的速度提上去了以后,还得再去确认一下,返回来的那些结果是不是仍然管用,并发如果太高,可能会把服务器的限流机制、会话的失效,还有保护策略都给勾起来,让很大一部分响应全变成同一种报错页面。
1、检查响应差异
重点去查看状态码、响应长度、响应时间,还有出错和超时的数量,如果大量的请求突然间开始返回429、503,或者是一样长度、一样内容的报错信息,那很可能就说明目标系统已经在限制请求了,这时候就需要把速度降下来,再去重新验证一遍。
2、检查动态参数
要是请求里面夹着CSRF Token、那种只用一次就失效的参数、验证码的状态,或者是存活时间很短的会话,那么一遍一遍地发送同一份请求,很可能过不了多久就会失效,碰到前面几条请求还算正常,后面就全部跑不通的情况,应该先去把会话的更新,还有那些会变化的参数给处理好,而不是继续去加并发。
3、分阶段调整速度
一开始可以先用比较低的并发,去确认请求本身、Payload的位置,还有返回的结果是不是都正确,然后再一步一步地把资源池的上限往上面调,每次只改动一项设置,再拿吞吐量、响应时间和出错的数量放在一起比较,这样才能判断速度上面的提升是不是真的有用。
总结
想要弄明白Burp Suite Intruder怎么去配置,还有攻击速度很慢的时候该怎么去优化,大体上可以按照这样的顺序来:先把Payload的位置设好,再挑准攻击的类型,接着把Payload里面的内容整理清楚,然后再去检查资源池和连接复用的配置,跑得慢的时候,别只盯着去加并发,还要去看看组合出来的请求有多少、参数是不是动态的、服务器给了什么样的响应,还有是不是已经触发了限流,把没用的请求减下去,并且把测试的范围控制好,很多时候比单纯去追求发送的速度,效果要来得更实在一些。
