一:sniper【狙击手】
这种攻击基于原始的请求内容,需要一个字典,每次用字典里的一个值去代替一个待攻击的原始值。
攻击次数=参数个数X字典内元素个数
例如:原始请求中
name=aa , password=bb,
字典:
{ 1 ,2 };
那么会产生四个请求:
name=1 , password=bb
name=2 , password=bb
name=aa , password=1
name=aa , password=2
二、battering ram 【撞击物】
也需要一个字典,这会使字典里每个值同时赋给所有参数。上例的结果为:
name=2 , password=1
name=1 , password=2
攻击次数=字典内元素个数
三、pitchfork【相交叉】
需要的字典个数=参数个数。
每个请求是由每个参数轮流取各自负载集合里的值得到。
如果每个字典里元素数量不一致,那么请求个数以最小的那个为准。
例:
原始请求中
name=aa , password=bb,payload1={ 1 , 2 }, payload2={ 3 , 4 , 5 }
会产生两个请求:
name=1 , password=3
name=2 , password=4
攻击次数=字典内元素个数最小值
四、cluster bomb 【炸弹丛】(最常用)
需要的字典个数=参数个数。
最后产生的所有请求是各参数取值的所有组合,攻击次数是字典内元素个数的集合。
例:
原始请求中
name=aa , password=bb,payload1={ 1 , 2 }, payload2={ 3 , 4 , 5 }
会产生 请求:
name=1 , password=3
name=1 , password=4
name=1 , password=5
name=2 , password=3
name=2 , password=4
name=2 , password=5