上次我们讲了nuclei中的一些常用模板,这次我们将针对返回包中包含的json字符串遇到的多种场景进行提取。
{"code":0,"msg":"successed","uuid":"a8e5444c55af324d0b79","url":"upload/xxx/fbc78d5e-b8af-4685.php"}
extractors:
- type: json #类型为json
name: url #自定义命名,变量
part: body # 提取的位置
internal: true # 需要使用动态变量,因为我们值是为动态的返回值
json:
- .url # 提取语法
提取json语法中“.”的含义为提取返回值的所有,“.url”代表只要“url”对应的值
因此返回:
upload/xxx/fbc78d5e-b8af-4685.php
{"code":0,"data":{"src":"/uploads/202400000/aaaaaaaaa.php"},"msg":"ok"}
extractors:
- type: json #类型为json
part: body #自定义命名,变量
name: fileurl #自定义命名,变量
internal: true # 需要使用动态变量
json:
- .data.src # 提取语法
提取语法为“.data.src”,先确认“/uploads/202400000/[aaaaaaaaa.php](aaaaaaaaa.php)”为“src”对应的值,“src”在“data”中,因此语法为“.data.src”,那么多层也是这么类推
{"ids":[0],"statuses":[0],"filePaths":["/upload/2024/aaaaaa.jsp"],"fileNames":["aaaaaa.jsp"],"fileSizes":["102"],"uploadFileNames":["aaaaaa.jsp"]}
我们要提取filePaths对应值"/upload/2024/aaaaaa.jsp"
extractors:
type: json #类型为json
name: url #自定义命名,变量
part: body # 提取的位置
internal: true # 需要使用动态变量
json:
.filePaths[0] # 提取语法
“.filePaths”提取的值为:["/upload/2024/aaaaaa.jsp"],[0]为数组第一个值/upload/2024/aaaaaa.jsp
extractors:
- type: json
part: body
json:
- .datas[][] | select(.col == "fdDept") | .value
马赛克安全实验室专注于:漏洞复现、渗透测试、nday、0day、网络安全、红蓝对抗,持续输出安全相关漏洞情报、漏洞复现相关漏洞验证脚本及工具。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...