工具学习--Yakit--Web Fuzzer学习

Yakit是一个功能强大、易于使用的安全测试平台,适用于各种网络安全测试和漏洞检测场景。本文就Yakit中的Web Fuzzer模块中的数据提取器功能进行学习研究,研究的环境是Yakit自带的靶场环境。

数据提取器

“人”如其名,数据提取器的功能就是将响应包中的某些数据提取出来。

数据提取范围分类:响应头、响应体、raw(响应体+响应头)

 提取方式:

  1. 正则表达式:正则表达式就是在提取位置中提取输入的正则表达式匹配到的内容。我们知道在正则表达式中可以使用小括号来分组,这时候我们可以在匹配正则分组中选择分组,这样就可以提取到想要的内容了。(在正则表达式中,0分组即为正则表达式匹配到的所有内容)
  2. XPath:(提取范围只能是响应体)XPath就是在提取位置中提取输入的XPath匹配到的内容。XPath是一种用于在XML文档中选择节点的语言,我们也可以很轻易地使用浏览器开发工具来复制完整的Xpath。
  3. 键值对:键值对的提取规则稍微有点复杂。键值对会尝试提取所有可能存在的json的key对应的value,以及所有形似key=value中value的值。如果提取位置包含响应头(提取范围为响应头Raw),则他还会尝试提取响应头中的value值。另外还有两个特殊的键值对,分别为protostatus_code,分别对应响应的HTTP协议版本和响应状态码。
  4. JQ(*):(提取范围只能是响应体)jq是一种用于在JSON文档中选择节点的工具,其对应的文档教程在此
  5. 表达式:(忽略匹配位置)表达式与匹配器中的表达式相同,这里不再赘述。 
1、正则表达式

通过正则表达式提取响应体中的PEM格式的RSA公钥数据。

匹配规则:

-----BEGIN PUBLIC KEY-----[A-Za-z0-9+/=\s]+-----END PUBLIC KEY-----

调试结果:

2、XPath

2.1匹配标签值

XPath提取响应体中的html中body部分的超链接标签数据--Vulinbox - Agent

逐级输入HTML的标签信息,以上述情况为例,Vulinbox - Agent所在的位置是html文件的body部分的header部分的nar区域的div块的超链接a处。

匹配规则:

/html/body/header/nav/div/a

调试结果

若在一个标签下存在两个相同的标签,则提取某个数据时可以使用标签名称[标签号]来区分。

以div块下两个超链接a为例:

1、提取div下的第一个a值:

/div/a[1]

2、提取div下的第二份a值:

/div/a[2]

3、提取div下的全部a值:

/div/a

 2.2 匹配html标签属性

以2.1中值的超链接路径信息为例,提取Vulinbox - Agent的超链接属性/static

相较于2.1中的匹配规则,在XPath参数中添加需要匹配到的标签名称href

3 、键值对

通过键值对提取响应体中的所有username数据。

匹配规则:

username 

4、JQ(*) 

通过JQ(*)提取JSON格式中的publickey参数值

 注:JQ(*)方式只适合于JSON格式匹配

匹配规则:

.publicKey

JQ(*)的匹配方式是逐级使用‘.’+参数名称的形式,包含特殊符号或者以数字开头的参数名称需要使用“[]”包裹。详情查看JQ(*)使用文档

以下面JSON数据为例:

{

"data":"{

        "username":"admin"

        "password":"123"

        }",

"ita":"1111111"

}

提取password的值:

.data.["password"]

5、表达式

通过表达式匹配响应包中是否存在username参数。(表达式的语法与nuclei-dsl语法兼容,熟悉nuclei工具的师傅可以尝试在表达式中编写一些复杂的匹配规则)。

匹配规则:

contains(body,"username") 

 因为响应包中存在username字符串,所以提取的结果是true。反之,若匹配的字符串不存在则返回false

<think>好的,用户问的是Yakit如何验证盲SSRF。首先,我需要回忆一下Yakit的基本功能和它在网络安全测试中的应用。Yakit是一个基于yaklang的安全工具,主要用于漏洞检测和渗透测试。盲SSRF(Server-Side Request Forgery)是指服务器会向攻击者指定的内部或外部资源发起请求,但响应不直接返回给攻击者,因此需要间接的方法来验证是否存在漏洞。 首先,用户可能需要了解什么是盲SSRF以及它与常规SSRF的区别。常规SSRF可以通过响应内容直接判断,而盲SSRF则需要依赖外部服务或延时来判断是否有请求发生。因此,验证盲SSRF的关键在于如何检测到服务器确实发起了请求。 接下来,Yakit中可能有几种方法来验证盲SSRF。比如,使用DNSLog或HTTPLog来记录是否有请求到达攻击者控制的服务器。或者,通过时间延迟技术,比如让服务器访问一个故意设置延迟响应的URL,观察应用响应时间是否有变化。 然后,我需要考虑Yakit的具体功能模块。例如,Yakit是否有内置的DNSLog或HTTPLog功能,或者是否需要结合第三方工具如Burp Collaborator。另外,Yakit的扫描模块是否支持自动化检测盲SSRF,或者需要手动构造请求。 可能还需要指导用户如何在Yakit中配置Payload,比如在参数中插入外部服务的URL,并监控是否有请求到达。例如,在测试点插入http://dnslog.cn生成的域名,然后检查DNSLog是否有解析记录。 此外,用户可能需要了解如何构造不同的Payload来触发SSRF,比如利用不同的协议(如http, gopher, dict等)或URL格式,以及如何绕过可能的限制。 需要注意的是,验证盲SSRF时,确保测试不会对目标系统造成损害,遵守法律和道德规范。同时,解释清楚每个步骤的原理,帮助用户理解而不仅仅是操作步骤。 最后,可能需要给出一个具体的操作示例,比如使用YakitWeb Fuzzer功能,构造包含DNSLog URL的请求,发送后检查是否有记录,从而确认是否存在盲SSRF漏洞。同时,提醒用户注意请求的合法性和测试权限。</think>Yakit验证盲SSRF(Server-Side Request Forgery)主要通过以下步骤实现,需结合外部监控服务进行间接验证: --- ### **一、理解盲SSRF特点** - **无直接响应**:服务端会发起请求,但响应内容不会返回给客户端。 - **需间接验证**:依赖DNS/HTTP请求记录、时间延迟等旁路手段。 --- ### **二、准备监控工具** #### 1. 选择日志监控服务 - **DNSLog**:使用平台如 `ceye.io` 或 `dnslog.cn` 生成临时域名。 - **HTTPLog**:使用 `Burp Collaborator` 或 `Interactsh` 生成URL。 - **自定义服务**:搭建简易HTTP服务器(如Python `http.server`)记录请求。 #### 2. 获取监控地址 - 示例DNSLog:`xxx.ceye.io` - 示例HTTPLog:`https://xxx.oast.pro` --- ### **三、Yakit操作步骤** #### 1. 构造Payload 在可能存在SSRF的参数中插入监控地址: ```http GET /api?url=http://xxx.ceye.io HTTP/1.1 ``` #### 2. 使用Web Fuzzer测试 - **输入点定位**:在请求参数、Header、Cookie等位置插入Payload。 - **协议尝试**:测试不同协议触发效果: ```http dict://xxx.ceye.io gopher://xxx.ceye.io:80/_payload ``` #### 3. 监控结果验证 - **DNSLog**:检查是否有解析记录。 - **HTTPLog**:检查是否有HTTP请求到达。 - **自定义服务**:查看访问日志。 --- ### **四、高级技巧** 1. **时间延迟法** 插入一个响应缓慢的URL,观察服务端是否延迟: ```http http://slow-server.com?delay=5 ``` 2. **条件竞争** 多次触发请求,观察监控服务的请求频率是否异常。 3. **绕过限制** - 使用短域名或IP编码(如 `2130706433` = `127.0.0.1`) - 利用URL解析差异:`http://[email protected]@example.com` --- ### **五、注意事项** 1. **合法性**:确保已获得授权,避免非法测试。 2. **协议限制**:部分服务端可能禁用非常用协议(如`gopher`)。 3. **环境差异**:内网环境可能需要特殊Payload(如`metadata`接口)。 --- 通过以上方法,Yakit可结合外部监控服务有效验证盲SSRF漏洞。实际测试中需灵活调整Payload并分析多维度监控数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春天里面的龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值