毕竟bp的FUZZ是yyds

传统

bp爆破:

  1. Sniper 狙击手
  • 可以理解为一个一个爆破
  • payload set只能选一个,也就是字典只能设置一个,然后用字典替换选择的参数
  • 结果就是pwd为初始值(123)不变,pwd用字典遍历一遍,然后name为初始值(123)不变,pwd用字典遍历一遍。

image.png
burpsuite爆破模式利用 - 图2

image.png
image.png

  1. Battering ram
  • payload set 依然只能选一个,也就是字典只能设置一个
  • 结果就是同时将name和pwd替换为字典内容遍历一遍,name和pwd都一样
  • image.png
  • image.png
    1. Pitchfork
      • payload set 可以选2个,也就是字典可以设置2个
      • 结果就是name和pwd同时替换为字典,但name用字典1遍历,pwd用字典2遍历。如果两个payload行数不一致的话,取最小值进行测试。
      • image.png
      • image.png
        1. Cluster bomb
          • payload set 可以选2个,也就是字典可以设置2个
          • 结果就是字典1和字典2的笛卡尔积。也就是将name替换为字典1中的参数1,然后pwd遍历字典2,然后将name替换为字典1中的参数2,然后pwd遍历字典2…………………….……
          • image.png
          • image.png
          • image.png

新版

新版Burpsuite 2021.12的Indruder增加了配置Target的功能,也就是说现在发包的目标也可以作为Payload Position(有效载荷)了,这直接给Burpsuite扩展出了批量打POC的能力。

也就是可以不用一些多线程脚本go和py,直接利用bp打就可以

比如我们可以收集一批子域名,用这个功能批量探测是否存在备份文件、敏感文件等。

在Indruder跑结果的时候如果遇到返回包特别大导致Burpsuite很卡的情况,可以考虑在请求包里使用Range头来限制返回包的大小: Range: bytes=0-1024 通过判断最前面的特征来进行识别

image.png

脚本

去掉http或https并去重

  1. alls=[]
  2. with open(r"have_http.txt","r+") as f:
  3. one=f.readlines()
  4. for i in one:
  5. if "http://" in i:
  6. i=i[7:]
  7. alls.append(i)
  8. elif "https://" in i:
  9. i=i[8:]
  10. alls.append(i)
  11. else:
  12. alls.append(i)
  13. print(len(alls))
  14. alls=list(set(alls))
  15. print(len(alls))
  16. with open(r"no_http.txt",'a+') as w:
  17. for i in alls:
  18. w.write(i)