神器yakit之web fuzzer功能

这篇具有很好参考价值的文章主要介绍了神器yakit之web fuzzer功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

yakit并不像burp一样单独设置爆破模块,但是yakit也是可以爆破的,并且更好用(个人感觉)。
手工测试场景中需要渗透人员对报文进行反复的发送畸形或者特定的payload进行查看服务器的反馈并以此来进行下一步的判断。
Fuzz标签便是来配合渗透人员应对不同测试场景,可以到达免配置适配大量测试场景。
通过Fuzz标签,自然且完美整合了Host碰撞、Intruder、目录爆破等等功能。
我们如果想要使用 fuzz 标签,需要明确两个概念,标签的格式是自定义的,目前支持{{和}}作为标签的标记。

使用 Web Fuzzer 进行爆破

使用 Burp 的 Intruder 爆破其实是任何一个渗透测试同学的必修课,在原数据流程,我们需要做的事情是:

  1. 把需要爆破的数据包发送到 Intruder
  2. 为爆破的位置打标记
  3. 设置字典
  4. 配置爆破的线程、爆破规则等等
  5. 开始爆破
  6. 等待结果,查看爆破过程

然而在 Yakit 中,这个过程变得更加简单并且符合人的逻辑。在yakit中进行爆破只需要以下这几步(类比burp):

  1. 把需要爆破的数据包发送到 Intruder
  2. 选中需要打标记的位置
  3. 右键选择字典
  4. 发包!

当然,这类场景非常多,很多时候我们想要的遍历订单类,遍历手机号,甚至遍历 Path 都可以通过这个方式做到。
实际 Yakit 在进行标记的时候,和 Burp 略微不同,并不是用序号进行标记,而是通过一个特殊的 Fuzz 标签,标签可以支持非常多的种类。而这也是yakit的一个亮点。
比如说,如果要进行一个参数遍历 1-10,在 Yakit 中只需要 {{int(1-10)}} 即可把这个位置用数字 1-10 依次替换。如果需要用到字典,通过 {{x(your-dict)}} 即可把字典内容依次替换标签位置内容,从而达到 Fuzz / 爆破的目的。比如下面这个数据包

POST /vul/burteforce/bf_form.php HTTP/1.1
Host: 106.225.223.72:9001
Cache-Control: max-age=0
x-forwarded-for: 127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Origin: http://106.225.223.72:9001
x-remote-ip: 127.0.0.1
Accept-Encoding: gzip, deflate
Referer: http://106.225.223.72:9001/vul/burteforce/bf_form.php
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=b7bg1strptq650mosus5no3rjl
Upgrade-Insecure-Requests: 1
x-remote-addr: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
x-originating-ip: 127.0.0.1
Content-Length: 45

username=admin&password=admin123&submit=Login

将passowrd这个参数进行爆破,爆破纯数字1-10,那么数据包的fuzz标签如下

POST /vul/burteforce/bf_form.php HTTP/1.1
Host: 106.225.223.72:9001
Cache-Control: max-age=0
x-forwarded-for: 127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Origin: http://106.225.223.72:9001
x-remote-ip: 127.0.0.1
Accept-Encoding: gzip, deflate

 - List item

Referer: http://106.225.223.72:9001/vul/burteforce/bf_form.php
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=b7bg1strptq650mosus5no3rjl
Upgrade-Insecure-Requests: 1
x-remote-addr: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
x-originating-ip: 127.0.0.1
Content-Length: 45

username=admin&password={{int(1-10)}}&submit=Login

yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
点击发送即可看到效果
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
对纯数字1-10的爆破结果如下
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
同时yakit在爆破之后也可以查看对应数据包详情、响应大小(长度)。更让人高兴的是,实际上我们的爆破有时候并不完全依赖字典,如果单纯只是想测试少数的几个路径,我们费力去传一个字典,其实有点浪费了,在 Yakit 中我们可以通过 {{list(element1|element2|…)}} 来测试几个特定的值。

POST /vul/burteforce/bf_form.php HTTP/1.1
Host: 106.225.223.72:9001
Cache-Control: max-age=0
x-forwarded-for: 127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Origin: http://106.225.223.72:9001
x-remote-ip: 127.0.0.1
Accept-Encoding: gzip, deflate
Referer: http://106.225.223.72:9001/vul/burteforce/bf_form.php
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=b7bg1strptq650mosus5no3rjl
Upgrade-Insecure-Requests: 1
x-remote-addr: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
x-originating-ip: 127.0.0.1
Content-Length: 45

username=admin&password={{list(123456|admin|admin123|000000)}}&submit=Login

比如这里就爆破了123456、admin、admin123、000000这几个密码,结果如下:
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全

如何快速查找爆破参数

抓一个包,将其发送到web fuzzer,或者在History里面找到想爆破的这条数据

历史记录里找数据包

yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
接下来查看你想爆破的这条数据的具体信息
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
点进来之后能看到数据包更具体的情况
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
里面会有对应的参数,我们按需选择参数即可,比如我们要测试password这个参数,那么就直接点击password这个参数后面的模糊测试按钮即可
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
点击之后会进入到web fuzzer模式
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
接下来就是正常的模糊测试流程

抓包发送到web fuzzer

上面是如何从历史记录中查找,这里是如何直接抓包进行爆破,毕竟考虑实用还是抓包直接发送到web fuzzer更快一点。
第一步:抓取想爆破的数据
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
然后右键点击唤出右键菜单栏
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
选择“发送到web fuzzer”即可

PS:这里有个小知识,有两个发送到web fuzzer的选项,但是意义是不一样的,第一个选项会强制https,如果你的目标是http,那么在选择第一个选项后,发送到web fuzzer后需要手动取消https选项

yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
不支持https的站点会发送出问题
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
取消强制https选项即可恢复
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全

选择爆破的字典

上面都是如何查找参数的问题,这里则是如何在需要爆破的参数上使用字典。毕竟yakit没有像burp那样单独去设置一个Intruder(爆破)模块。

等待标签自己出现

在yakit中选择想要爆破的参数,然后等待出现选项
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
在yakit的web fuzzer中选择任意内容后会自动弹出功能菜单栏,常见“插入标签”、“编码”、“解码”。其中“插入标签”功能默认情况下如下
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全

主动唤出右键菜单

选择想要爆破的参数,然后点击右键
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
点击“插入标签/字典”
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全

三种使用字典的方式
① 插入临时字典

通过手工方式添加一个临时的字典,添加的文本可以直接读取文件内容或者按行读取
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
该模式适用于字典中密码比较少、专向于某一目标的社工字典等等情况
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
上面就是使用这几个密码作为字典的内容去爆破,填写完成后点击“确定插入标签”,如下,标签变成了临时字典文件了
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
点击“发送请求”进行密码爆破
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全

② 插入模糊测试字典标签

payload模块里面,选择需求的字典,复制Fuzz标签,粘贴到你所需要fuzz的参数处,payload模块的字典可以自行上传保存等操作,payload模块可以理解为一个字典库。
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
点击之后选择自己想使用的fuzz字典(之前自己上传的)
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
选完之后点击确定插入
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
插入完成之后标签如下
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
点击“发送请求”进行字典爆破
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全

③ 插入文件标签

从本地导入字典文件,对文件内容可以按行读取,或直接读取文本内容
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全

文件内容模式

yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
默认模式是文件内容模式,该模式是将一个文件的所有内容当成一个完整的payload去发送
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
点击“确定所选内容”进行插入,然后点击发送
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全

按行读取文件模式

这个模式应该是大家比较熟悉的了,就是经典的burp的字典加载模式,即一个payload占一行。
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
发送请求
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
此外在爆破中还可以进行高级设置
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全
点开高级配置,还可以设置爆破的并发线程数、代理、随机延迟,对于爆破结果的筛选,可以通过正则、状态码、关键词匹配对响应包进行过滤,并且支持正则提取响应数据。

常用 fuzz 标签

通过上面的案例,想必大家对fuzz标签有了初步的认识。在yakit中除了账号密码的爆破之外,fuzz标签还有很多使用的场景

短信验证码类型Fuzz

4位数验证码:{{int(0000-9999|4)}}
随机4位数验证码最小0000最大9999 枚举200次 有效4位:{{randint(0000,9999,200|4)}}
6位数验证码:{{int(000000-999999|6)}}
随机6位数验证码最小000000最大999999 枚举200次 有效6位:{{randint(000000,999999,200|6)}}

学号/工号/手机号类型Fuzz
手机号Fuzz

手机号组成结构(3位网号+4位HLR号+4位的个人代码)
网号固定,HLR和个人代码随机枚举:

{{int(133,153,180)}}{{randint(0000,9999,100|4)}}{{randint(0000,9999,100|4)}}

网号固定,HLR和个人代码递归枚举:

{{int(133,153,180)}}{{int(0000-9999|4)}}{{int(0000-9999|4)}}
学号/工号Fuzz

学号/工号组成结构(入学年份+三位系别代码+两位专业代码+三位学生编号):

{{int(2015-2023)}}{{int(000-999|3)}}{{int(00-99|2)}}{{int(000-999|3)}}

同理也可也用{{rangint()}}随机生成几位数值组成相关代码

MD5 Fuzz
000-999的3位数MD5加密枚举 Fuzz
{{md5({{int(000-999|3)}})}}
嵌套字典MD5加密枚举 Fuzz
{{md5({{x(user_top10)}})}}
Base64 Fuzz
000-999的3位数base64加密枚举 Fuzz
{{base64enc({{int(000-999|3)}})}}
嵌套字典base64加密枚举 Fuzz
{{base64enc({{x(user_top10)}})}}
重定向并发 Fuzz

渗透测试需求中可能会对某些需求重复发包,或重复生成数据。repeat重复产生空字符串,例如:{{repeat(3)}},结果为:[“”, “”, “”] 一般用来重复发包,或重复生成数据 重复发送100次数据包:{{repeat(100)}}。人话:重复将数据包发送指定次数,并且产生新的参数或其他参数。比如这里重复发送10次登录数据包

POST /vul/burteforce/bf_form.php HTTP/1.1
Host: 106.225.223.72:9001
Cache-Control: max-age=0
x-forwarded-for: 127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Origin: http://106.225.223.72:9001
x-remote-ip: 127.0.0.1
Accept-Encoding: gzip, deflate
Referer: http://106.225.223.72:9001/vul/burteforce/bf_form.php
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=b7bg1strptq650mosus5no3rjl
Upgrade-Insecure-Requests: 1
x-remote-addr: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
x-originating-ip: 127.0.0.1
Content-Length: 45

username=admin&password=123456&submit=Login{{repeat(10)}}

结果如下:
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全

host碰撞 Fuzz

Web Fuzzer 默认请求的是 Request 请求包中的 Host ,除此外也可以在 “高级配置” 中设置 “请求 Host”。 Host 碰撞时请求 Host 与请求包的 Host 不一致,可以在 “高级配置” 中指定目标 Host。
yakit 字符串长度,流量抓包,网络安全基础,yakit的使用,计算机网络,网络安全,web安全,安全文章来源地址https://www.toymoban.com/news/detail-831103.html

到了这里,关于神器yakit之web fuzzer功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ 字符串长度计算

    C++常用的长度计算方法size()、sizeof() 、strlen()、length() size():计算长度,std::string类的成员函数 length():计算长度,std::string类的成员函数 sizeof():计算所占用空间的字节数,是运算符;在编译时计算,获得保证能容纳实现所建立的最大对象的字节大小,因此sizeof不能用来返回

    2024年02月11日
    浏览(49)
  • C/C++字符函数和字符串函数详解————长度受限制的字符串函数

    个人主页:点我进入主页 专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.前言         2.长度受限制的字符串函数 2.1strncpy函数 2.2strncat函数 2.3strncmp函数

    2024年02月08日
    浏览(31)
  • 字符串后面补最短长度的字符,使其整体成回文字符串(java)

    给定一个字符串str,只能在str的后面添加字符,想让str整体变成回文串,返回至少要添加几个字符 首先介绍下manacher 算法: Manacher 算法是一种线性时间复杂度的求解最长回文子串的算法。它的核心思想是利用已知回文信息,避免重复计算。 Manacher 算法的基本思想是通过预处

    2024年02月16日
    浏览(27)
  • Python计算字符串长度的函数

    1、使用内置函数len 这是Python中一种常用的函数,主要功能就是对字符串的长度进行统计,最后会返回一个字符串的实际长度,使用方法如下: 在示例中str就是一个要计算的字符串,它还可以是列表或者是字典等等。 2、使用for循环 使用for循环来统计字符串的长度时,我们可以

    2024年02月13日
    浏览(40)
  • LeetCode——最小化字符串长度

    目录 一、题目 二、题目解读  三、代码  1、set去重 2、用一个二进制数记录每个字母是否出现过 6462. 最小化字符串长度 - 力扣(Leetcode) 给你一个下标从  0  开始的字符串  s  ,重复执行下述操作  任意  次: 在字符串中选出一个下标  i  ,并使  c  为字符串下标  i

    2024年02月08日
    浏览(33)
  • java中压缩字符串的长度

    在 Java 中,可以使用压缩算法对字符串进行压缩,以减少字符串的长度。常见的压缩算法包括 Gzip、Deflate 和 Bzip2 等。 下面是一个使用 Gzip 压缩算法对字符串进行压缩的示例代码: 在这个示例代码中,我们首先定义了一个需要压缩的字符串 originalString 。然后,我们使用 Gzi

    2024年02月16日
    浏览(31)
  • 【Python系列】获取字符串的长度

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年04月09日
    浏览(36)
  • Java如何求得字符串的长度

    在 Java 中,要获取字符串的长度,可以使用 String 类的 length() 方法 其语法格式: 字符串名.length(); 返回的值是int类型的长度值。 举例: 1.例如现在接收到了一串字符串,可能接收到的是正常的字符串,也有可能是空字符串,这时候就需要判断下字符串是否存在值,就可以使

    2024年02月16日
    浏览(31)
  • Java格式化字符串输出固定长度,不够长度空格补全长度

    字串格式化输出经常用到,将字串固定输出长度可以使用如下方式格式化输出: 输出结果: 你好              length16 %-16s :表示输出固定长度16为,如源字串长度不足16位,-表示右侧补空格至16位; 同样,如果想实现固定输出长度16位,长度不足左侧补空格,可使用%16s。

    2024年02月08日
    浏览(45)
  • C# 生成指定长度的随机字符串

     /// summary         /// 生成指定长度的随机字符串         /// /summary         /// param name=\\\"intLength\\\"随机字符串长度/param         /// param name=\\\"booNumber\\\"生成的字符串中是否包含数字/param         /// param name=\\\"booSign\\\"生成的字符串中是否包含符号/param         /// param name=\\\"booSmall

    2024年01月19日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包