zoukankan      html  css  js  c++  java
  • 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
    省略响应头"
    			]
    		],
    		"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
    请求头省略",
    		"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都能实现最大化的覆盖扫描

  • 相关阅读:
    无法打开内核设备"\.Globalvmx86": 系统找不到指定的文件问题记录
    docker使用switch to Linux Containers切换不成windows问题
    js设计模式——发布订阅模式
    剑指offer系列——求1+2+…+n
    【转载】CSS3弹性盒布局方式
    【转载】.btc勒索病毒删除+还原文件(Dharma家族新成员)
    【转载】chrome浏览器的跨域设置——包括版本49前后两种设置
    【转载】SVN使用教程总结
    【转载】vue.js移动端app
    【转载】将web项目打包成手机app的方法
  • 原文地址:https://www.cnblogs.com/Cl0ud/p/14540114.html
Copyright © 2011-2022 走看看