Burpsuite2021系列教程(二)----Intruder模块的使用

东东   ·   发表于 2021-12-25 20:49:41   ·   安全工具

Intruder

Intruder模块,通过它我们可以在短时间内向目标发送大量的请求,在渗透测试中我们想要枚举任何数据时都可以通过它去实现,下面主要讲Intruder的四种组合payload的模式以及18种payload类型(有几个我不熟练,所以没写)

下面是它几个板块的简单介绍

Target

​ 一般情况下,这里是不用设置的,因为Intruder模块的数据包一般是从其他模块发送过来的,最常见的就是用Proxy或者Repeater模块转发过来,如下图

Positions

​ 上面已经把请求包转发过来了,所以我们这里是直接有内容的

  • Attack type,就是设置payload的组合类型的,它里面有四种

    • Sniper,可以设置多个替换范围,它会每个范围都用payload组去替换一次

      1. 就假如说我设置usernamepassword两个点,然后payload3个,那么它就会跑6
      2. username的值替换3次,这时候password的值是原始的
      3. 然后password的值替换3次,这时候username的值是原始的
      4. 这个建议自己去试一下,就明白了

    • Battering ram,它和Sniper的区别在于,Sniper一次只会替换一个payload的位置,而它你设置几个它就一起替换几个,也就是说上面那种情况的话,它只会跑3次

    • Pitchfork,它可以设置多个替换范围(最多20个),有多个替换范围就要设置多少个payload,在跑包的时候payload是一起对应着一行一行的来,跑多少次以payload最少的那组为准

      1. 例如说有三个设置payload的点,然后我三个payload集合内容如下
      2. p1:1,2,3,4,5,6,7,8,9
      3. p2:a,b,c,d,e,f,g,h,i,j,k,l,m,n
      4. p3:!,@,#
      5. 那么在跑的时候它们的组合方式就是
      6. 1a!
      7. 2b@
      8. 3c#
      9. 结束,因为p3只有3payloads
    • Cluster bomb,可以设置多个替换范围(最多20个),依次遍历所有Payloads,它和Pitchfork的区别就在于,它会把所有的payloads集合进行不同的组合,跑的次数是每个payload组中数据量的乘积

      1. 2paylaod
      2. p1: 1,2,3
      3. p2: a,b,c
      4. 组合的方式就是
      5. 1a,1b,1c,2a,2b,2c,3a,3c,3c
  • 下面数据区域中,那些绿色背景的数据就是在进行枚举时,payload会替换的位置,Burpsuite用特殊的符号来固定它们的范围,我们可以使用Clear那个按键去清空所有设置的范围,然后在我们想要设置的开始范围按下Add键,找到结束的位置也按下Add键就可以设置好自己想要的范围,例如像下面这样

    然后下一步就是要去设置payload,当payload设置好了之后就可以点Start attack开始攻击了

Payloads

18种payload type具体使用

  1. Simple list(简单列表)

    这里面的payload集合可以自己输入,也可以从文件中读取,或者载入它预先准备好的一些payload集合,这个类型下对payload的组合比较自由

    对于add from list这里面的一些集合我不是很看好,例如说用户名,密码,目录这些,因为我认为它这里面的内容可能会更符合外国人的口味,如果说你有一个好的字典,那么我还是建议用自己的

  2. Runtime file(运行时加载文件)

    先不加载文件,等开始攻击时,在读取文件内容,一行就是一个payload,记住路径中不能有中文,否则会报错

  3. Custom iterator(自定义迭代器)

    我们先看图,在这里我把一行payload比作一条字符串,那么自定义迭代器中它最多可以划分8个子串组,并且在Separator for position中指定当前子串组与下一条子串组之间的分隔方式,Preset schemes中是一些预定义的分隔方案

    下面我来举个例子,假设我要跑一个数据,它的格式是id:username@password,那么我就可以设置三个payload

    • 第一个设置一些id值,指定分隔符是:

    • 第二个设置一些用户名,指定分隔符是@

    • 第三个设置一些弱口令

    运行结果

    会跑多少次应该是,所有子串组的中子串的数量相乘

  4. Character substiution(字符串替换)

    从运行结果中我们可以发现,它是会去依次替换的

  5. Case modification(大小写替换)

  6. Recursive grep(递归匹配)

    ​ 这个比较重要,它是可以从响应中提取数据来充当payload的,打个比方我们要对一个接口进行枚举,它有个token,这个token每一次请求都是不一样,响应中肯定是会携带这个token的,那么我们就可以从响应中获取token利用它来进行枚举

    ​ 我这里的例子用的是DVWA这个靶场中的Brute Force关卡的高级(High)难度,可以看到参数中有user_token这项,下面演示怎么获取它

    ​ 首先Proxy抓的包不要放,不然token就失效了,选中密码和token的值作为替换范围,攻击模式选择Pitchfork

    看图操作


    这里别忘了复制token的值,因为这里发起了请求之后,原来那个token值已经失效了

    ​ 第一个Payload我随便设置了一些值,里面放了正确密码,然后第二个payload它会自己选定我们刚才搞出来的正则表达式,重点在于我们要把刚才复制的token填入Initial payload for first request这个框中

    ​ 然后去设置线程池,为1个线程,因为我们是从响应里面获取内容的,所以它只能设置成一个线程

    ​ 都弄好之后就可以开始攻击了,成功跑出结果

  7. Illegal Unicode(不合法的Unicode编码)

    这个有点难以理解,先放着

  8. Character blocks(字符块)

    指定一个字符,不停的增加它的长度,往数据包中填充垃圾数据,可以很方便的测试检测边界(例如绕WAF),或者缓冲区溢出

  9. Numbers(数字类型)

    如果在跑验证码的时候,假如验证码有4位,我们要从0跑到9999,为了让它从0001,0002这样的格式增长,我们可以限制它的最少和最多位数为4,小数位都为0,这样就OK了

  10. Dates(日期型)

  11. Brute focer(暴力字典)

  12. Null payloads(无payload)

    不用设置payload,设置一下跑多少次就好了

  13. Character frobber

    下面是运行结果

  14. Bit flipper(bit反转)

  15. Username generator(用户名生成)

    这里面的payload集合的内容有两种格式(姓名/邮箱):

    1. firstname lastname
    2. firstname.lastname@example.org

    它会根据payload的内容去不停的变更,具体的自己测试一下就知道了

  16. ECB block shuffler(ECB加密块洗牌)

  17. Extension-generated(扩展生成器)

    配合扩展插件使用来生成payload

  18. Copy other payload

Payload Processing

这里面可以设置一些对payload进行加工的方法,例如对payload进行base64编码,或者MD5加密等操作

这里以对payload进行base64编码为例,点击add添加规则,然后选择Encode,找到Base64-encode然后点击确定

设置好了之后,直接点击start attack就OK了,可以看到我们的payload被编码了

它可以设置多个加工规则,然后优先级是从上往下的,例如下面这样,它就是先把payload进行base64编码,然后在进行md5加密

payload Encoding

这个东西呢是设置一些特殊字符,如果这些字符出现在payload中了呢就会对它们进行url编码

Resource Pool

Options

如下图所示

用户名金币积分时间理由
Track-劲夫 30.00 0 2021-12-28 14:02:12 活动奖励
Track-劲夫 60.00 0 2021-12-28 14:02:07 一个受益终生的帖子~~

打赏我,让我更有动力~

0 条回复   |  直到 2022-2-28 | 2154 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.