Xray社区版和专业版漏洞导出结构区别分析

前言

水文

不管是使用--html-output参数还是--json-output参数,其核心都是json形式传递的漏洞详情,html格式只是更方便我们看而已,所以这里对json格式的数据进行分析

目的

方便想要在扫描器中合并xray的朋友整合漏洞报告

扫描目标

testphp.vulnweb.com

专业版版本 1.3.3

社区版版本 1.7

社区版

扫描之后导出为json的结果

可以看到是使用list+dict的格式,因为每条都比较长,选取其中一条,并且把长的快照部分省略掉了

{ "create_time":1615809845916, "detail":{ "addr":"http://testphp.vulnweb.com/index.zip", "payload":"/index.zip", "snapshot":[ [ "GET /index.zip 省略请求头", "HTTP/1.1 206 Partial Content\r\n省略响应头" ] ], "extra":{ "param":{} } }, "plugin":"dirscan/backup/default", "target":{ "url":"http://testphp.vulnweb.com/index.zip" } }

整理后其结构为:

其实整理后的结构我们已经很明显可以看出是怎么保存漏洞信息的了,但这里还是简单讲解一下

create_time:扫描开始的时间

detail:漏洞详情,这肯定是需要的

addr:最开始的扫描地址

payload:这个不解释

snapshot:快照,一方面保存我们打过去的请求头,一方面保存响应头和响应体,方便我们漏洞复现

extra:这个里面的参数是param,即参数,因为这里的漏洞是敏感文件中的备份文件,不存在extra,我们参考另外一个社区版扫描出来的xss漏洞

"extra":{ "param":{ "key":"cat", "position":"query", "value":"extractvalue(1,concat(char(126),md5(1577916059)))" } }

可以看出来这里的param更多的是存储一些特殊的payload,漏洞参数以及说明

plugin:扫描所使用到的插件,可以使用--plugin进行指定

target:也是目标,不过这里应该指的是存在漏洞的URL

专业版

接着使用专业版进行扫描,依旧是list+dict

很明显漏洞报告内容丰富多了,而且专业版的扫描插件更多,所以爆漏洞的可能性更大

简单取一个分析

取一个比较有代表性的

{ "create_time": 1615814211000, "detail": { "filename": "/index.zip", "host": "testphp.vulnweb.com", "param": {}, "payload": "", "port": 80, "request": "GET /index.zip HTTP/1.1\r\n请求头省略", "response": "HTTP/1.1 206 响应包省略", "url": "http://testphp.vulnweb.com/index.zip" }, "identifier": "/index.zip", "plugin": "dirscan", "target": { "url": "http://testphp.vulnweb.com/listproducts.php" }, "vuln_class": "backup" }

和社区版结构略有不同,并且存在port参数,不再做过多解释

合并整理

可以将目标动态爬取后的URL列表依次使用xray扫描,将结果保存在内存或数据库中,和自己编写的漏洞扫描产出的报告进行合并

至于报告文件夹清理,可以使用:

import shutil def cleanTempXrayReport(): shutil.rmtree("{}".format(config.Xray_temp_report_path)) os.mkdir("{}".format(config.Xray_temp_report_path)) return

最后对于每一个url都能实现最大化的覆盖扫描


__EOF__

本文作者春告鳥
本文链接https://www.cnblogs.com/Cl0ud/p/14540114.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   春告鳥  阅读(2542)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示