SRC漏洞挖掘--CNVD国家信息安全漏洞共享平台

时间:2024-10-19 07:40:31

目录

0x00 简介      

0x01 过程中使用的工具

0x02 详细过程

一、  寻找挖洞目标

1.1 工具介绍

1.2 目标检索过程

二、 趁手的挖洞工具 

2.1 工具介绍

2.2 工具下载链接

2.3 工具使用

三、挖洞时间

四、漏洞验证

五、提交漏洞

0x03 注意事项


0x00 简介      

  SRC漏洞平台:安全应急响应中心(SRC, Security Response Center),是企业用于对外接收来自用户发现并报告的产品安全漏洞的站点。说白了,就是连接白帽子和企业的平台,你去合法提交漏洞给他们,他们给你赏金。 目前国内有两种平台,一种是漏洞报告平台,另一种就是企业SRC。这里也给大家强调一下,一定不要非法挖洞,要注意挖洞尺度和目标要有授权!做一个遵纪守法的好公民!

        由于特殊原因本人需每周提交部分漏洞到CNVD国家安全漏洞共享平台,最近发现站点不接收小企业漏洞,提交的也均未被审核通过,经过一番询问得知,目前CNVD接受*、医疗、学校以及部分集团和国企等SRC漏洞,这无疑为我们挖洞增加了不小难度。

        下面是我目前的挖洞思路:

  1. 寻找挖洞目标
  2. 使用趁手的挖洞工具
  3. 挖洞时间
  4. 漏洞验证
  5. 提交漏洞

0x01 过程中使用的工具

        本文牵涉到的知识领域和使用的工具主要有:

  1. python的基本使用
  2. 漏洞扫描工具的使用
  3. 漏洞验证能力
  4. 网络空间测绘平台、企查查、爱企查
  5. 长亭的xray漏洞扫描工具
  6. 360的动态爬虫工具crawlergo
  7. SRC漏洞提交平台

        本文使用的脚本主要有(python脚本):

  1. fofa API调用脚本
  2. 目标URL存活验证脚本
  3. xray和crawlergo联动脚本

注意: 博主为Mac系统,过程期间提供的脚本如有window用户需稍稍进行修改,博主在代码中也会提示

0x02 详细过程

一、  寻找挖洞目标

1.1 工具介绍

  1. 网络空间测绘平台:fofa、奇安信网络空间测绘Hunter、360网络空间测绘Quake(需要有会员);
  2. API脚本;
  3. 企查查、爱企查(需要有会员)。

1.2 目标检索过程

        本次我们以fofa为例批量检索需要的目标地址,使用fofa语法检索目标,然后通过API脚本下载对应数据。

        事先组织好查询语法,本次我们以域名的方式进行检索,对域名为"."地区为中国状态码为200进行检索,可以发现有很多资产,因为会员限制我们每天只提取1万个目标,所以还需要继续优化使用的检索语法:

host="." && country="CN" && status_code="200"

        通过对地区细分可以再次对数据进行筛选,可以发现大多数地区在3万以内,这样就可以可以分批进行检索下载了:

host="." && country="CN" && status_code="200" && region="Beijing"

        然后通过fofa API进行数据提取,过程中需要使用python脚本对fofa API数据提取代码如下(运行代码前需要提前知道fofa的邮箱和api_key在个人中心进行查看):

# 申明:此工具仅供学习使用,不负有相关法律责任
# window用户和Linux用户均可直接使用,无需进行修改

import base64
import csv

import requests


# 查询函数
def Inquire(email, api_key, gammer):
    qbase64 = base64.b64encode(()).decode()
    api = '/api/v1/search/all?email={}&key={}&qbase64={}&size=10000'.format(email, api_key, qbase64)
    print("正在请求页面查询{}".format(gammer))
    response = (api)
    data_result = ()["results"]
    count = len(data_result)
    print("总共可获取数量为{}条数据\n".format(count))
    # print(data_result)
    count_range = GetNumber()
    write_file(gammer, data_result, count_range)


# 下载次数函数
def GetNumber():
    count_range = input('请输入获取数据的数量(最大限制10000条):')
    # count_range = 10000 #若使用批量查询,默认下载数可以直接设置
    return int(count_range)


# 写入函数
def write_file(gammer, data, count_range):
    filename = gammer + '.csv'
    with open(filename, 'a', newline="") as f:
        writer = (f)
        (["URL", "IP地址", "访问端口号"])
        for result in data:
            list_data = [result[0].strip(), result[1].strip(), result[2].strip()]
            (list_data)
            count_range -= 1
            if count_range == 0:
                break


# 交互界面
def GUI_Communication():
    print("\n\t FOFA——API接口工具\n")
    email = input('Email:')
    api_key = input('api_key:')
    num = int(input('是否为单量查询(是1/否0):'))
    if num == 1:
        gammer = input('查询语法:')
        Inquire(email, api_key, gammer)
    elif num == 0:
        with open("", 'r') as f:
            for gammer_data in ():
                gammer = gammer_data.replace('\n', '')
                Inquire(email, api_key, gammer)
    else:
        print("只能输入0或1!")


if __name__ == '__main__':
    GUI_Communication()

        脚本运行后输入正确的邮箱和api_key,将上面组织好的语法进行输入,填写下载数量对数据下载,会在脚本目录生成一个以语法命令的表格文档,打开就是我们需要的目标地址;

         接下来需要对目标存活性进行验证,并输出为格式化URL:http://ip或域名:端口,方便进行漏洞挖掘,本次我们依然使用python脚本进行存活验证,需要提前将表格里的url保存到文本中每行一个目标URL,放置在该代码相同文件夹即可,脚本运行完后会在同级目录生成url_ok.txt文件,该文件为最终目标URL,脚本如下:

# 申明:此工具仅供学习使用,不负有相关法律责任
# windows用户需将代码中的./的./去掉即可


import requests


def foo():
    for url in open("./"):
        url = ()
        if 'http' in url or 'https' in url:
            url1 = url
            url2 = None
        else:
            url1 = f'http://{url}'
            url2 = f'https://{url}'
        try:
            ok = (url1, timeout=(5, 8))
            if ok.status_code == 200:
                print(url1, ok.status_code)
                with open("./url_ok.txt", 'a+') as url_ok:
                    url_ok.write(url1 + "\n")
                    url_ok.close()
            else:
                ok_1 = (url2, timeout=(5, 8))
                if ok_1.status_code == 200:
                    print(url2, ok_1.status_code)
                    with open("./url_ok.txt", 'a+') as url_ok:
                        url_ok.write(url2 + "\n")
                        url_ok.close()
                else:
                    print(url2, ok.status_code)
        except:
            try:
                ok2 = (url2, timeout=(5, 8))
                if ok2.status_code == 200:
                    print(url2, ok2.status_code)
                    with open("./url_ok.txt", 'a+') as url_ok:
                        url_ok.write(url1 + "\n")
                        url_ok.close()
                else:
                    print(url2, ok2.status_code)
            except:
                print(f"{url2} URL无效")


if __name__ == "__main__":
    foo()

二、 趁手的挖洞工具 

        工具其实有很多,自己使用顺手就可以。

2.1 工具介绍

  1. xray:一款由是从长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器;
  2. 360-crawlergo:有360安全团队开发一个使用chrome headless模式进行URL入口收集的动态爬虫工具。
  3. xray和360-crawlergo联动脚本

        本次我们使用xray和crawlergo进行联动,对刚刚整理的目标进行漏洞挖掘,具体使用也可以参考xray官方教程,也可以跟着博主思路进行使用;

2.2 工具下载链接

        xray:直接访问官网进行下载,github版本更新不及时,建议直接通过官网下载:

  • 官网:CT Stack 安全社区
  • github:/chaitin/xray/releases

        360-crawlergo:

  • github:/Qianlitp/crawlergo/releases

        联动脚本:

  • github:/timwhitez/crawlergo_x_XRAY

2.3 工具使用

        下载适合自己操作系统类型的工具(博主为Mac arm64,下载darwin_arm64版本),然后统一放置在一个文件夹中:

         将下载的crawlergo和xray放置在联动脚本程序,然后将联动脚本程序的crawlergo和xray文件夹删除,注意需要修改crawlergo_darwin_arm64文件名为crawlergo,修改主程序和launcher_new.py部分代码,主要是chrome路径改为本地路径,博主chrome浏览器位置为:/Applications/Google /Contents/MacOS/Google Chrome,将如下代码更改即可:

        放置在同一文件夹;

         修改主程序和launcher_new.py浏览器文件目录,两个文件修改位置基本一致,建议使用主程序该程序有爬取回显;

        将第一步获取的目标放置在文件中,注意需要逐行隔开,然后本地开始使用xray监听127.0.0.1:7777,脚本编写默认监听7777端口,联动本质为通过脚本将crawlergo爬去的目标数据发送给正在监听的xray,然后实现目标的漏洞检查;

        目标放置给文件;

        启动xray监听 ,监听命令不理解的可以去xray官网查询;

./xray_darwin_arm64 webscan --listen 127.0.0.1:7777 --html-output 

        启动联动主程序爬取目标,等待片刻,可以发现爬虫已经爬取好数据通过本地回环7777端口发送给xray,接下来只需要安静的等待输出报告即可;

 

三、挖洞时间

        关于挖洞时间这个就不确定了,还待看运气,不过由于大家都在挖SRC所以现在就不太容易挖掘了,建议睡觉前电脑跑着,或者直接整个虚拟机一直运行。

四、漏洞验证

        漏洞验证也是我们从事web安全必须掌握的技能,这个其实很简单,不懂就问,度娘总会给你满意答案,不过也有小技巧,报告里面一般都会给相应的验证脚本和验证思路,大家直接根据报告进行验证一般都没有问题。

五、提交漏洞

        提交SRC漏洞平台有很多,本人主要还是在CNVD国家信息安全漏洞共享平台进行提交,当然也有其他的很多平台,下面我列出一部分,可以供大家参考,应该算是比较详细了。

A
 阿里巴巴 (ASRC)
 /
 
 阿里云先知
 /  
 
 爱奇艺 (71SRC)
 /  
 
 安恒
 /  
 
B
 BIGO (BSRC)
 /  
 
 BOSS直聘 (BSSRC)
 /  
 
 百度 (BSRC)
 /  
 
 百合 (BHSRC)
 /  
 
 贝贝 (BBSRC)
 /  
 
 贝壳 (BKSRC)
 /  
 
 本木医疗 (BMSRC)
 /src/  
 
 哔哩哔哩 (BILISRC)
 /  

C
 菜鸟网络 (CNSRC)
 /  

D
 DHgate (DHSRC)
 /  
 
 大疆 (DJISRC)
 /  
 
 滴滴出行 (DSRC)
 /  
 
 东方财富 (EMSRC)
 /  

 斗米 (DMSRC)
 /  
 
 斗鱼 (DYSRC)
 /  
 
 度小满 (DXMSRC)
 /  

F
 法大大 (FSRC)
 /  

 富友 (FSRC)
 /  
 
G
 瓜子 (GZSRC)
 /  
 
H
 好未来 (100TALSRC)
 https://src./  
 
 合合 (ISRC)
 /  
 
 恒昌 (HCSRC)
 /  
 
 虎牙 (HSRC)
 /  
 
 华为 (HBP)
 /  
 
 华住 (HSRC)
 /  
 
 欢聚时代 (YSRC)
 /  
 
 货拉拉 (LLSRC)
 /  
 
 火线
 /project/detail?pid ref
 
J
 焦点 (FSRC)
 /  
 
 金山办公 (WPSSRC)
 /  

 金山云 (KYSRC)
 /  
 
 京东 (JSRC)
 /  

 竞技世界 (JJSRC)
 /  
 
K
 酷狗 (KGSRC)
 /  
 
 快手 (KwaiSRC)
 /  
 
 旷视 (MSRC)
 /  

L
 老虎证券 (TigerSRC)
 /  
 
 乐信 (LXSRC)
 /  
 
 理想
 /  
 
 联想 (LSRC)
 /  

 猎聘 (LPSRC)
 /  
 
M 
 MYSRC
 /  
 
 马蜂窝 (MFWSRC)
 /  
 
 蚂蚁集团 (AntSRC)
 /  
 
 美丽联合 (MLSRC)
 /  
 
 美团 (MTSRC)
 /  
 
 魅族 (MEIXZUSRC)
 /  
 
 陌陌 (MMSRC)
 /  
 
N
 你我贷 (NSRC)
 /sec/  
 
O
 OPPO (OSRC)
 /  
 
P
 平安 (PSRC)
 /  

 平安汇聚 (ISRC)
 /  
 
Q
 千米 (QMSRC)
 /  
 
 去哪儿 (QSRC)
 /  

R 
 融360 (Rong360SRC)
 https://security./  

S
 SHEIN
 /  
 
 SOUL
 /  
 
 360 (360SRC)
 https://security./  
 
 深信服 (SSRC)
 /  
 
 世纪佳缘 (JYSRC)
 /  
 
 水滴安全 (SDSRC)
 /  
 
 顺丰 (SFSRC)
 /  
  
 苏宁 (SNSRC)
 /  
 
T
 T3出行 (T3SRC)
 https://security./  
 
 TCL (TCLSRC)
 /  
 
 腾讯 (TSRC)
 /  
 
 同程旅行 (LYSRC)
 /  
 
 同程数科 (TJSRC)
 /  
 
 统信(USRC)
 /  
 
 同舟共测
 /  
 
 途虎 (THSRC)
 /  
 
 途牛 (TNSRC)
 /  
 
U
 UCLOUD (USRC)
 /  

V
 VIPKID (VKSRC)
 /  

 VIVO (vivoSRC)
 /  
 
W
 WiFi万能钥匙 (WIFISRC)
 /  
 
 挖财 (WACSRC)
 /  
 
 完美世界 (PWSRC)
 /  
 
 网易 (NSRC)
 https://aq./  

 唯品会 (VSRC)
 /  
 
 微博 (WSRC)
 /  
 
 微众 (WSRC)
/  

 58 (58SRC)
 https://security./  
 
 伍林堂 (WSRC)
 /  
 
X
 喜马拉雅 (XMSRC)
 /  
 
 享道出行 (SDSRC)
 /  
 
 小米 (MISRC)
 /  
 
 小赢 (XYSRC)
 /  
 
 携程 (CSRC)
 /  
 
 新浪 (SSRC)
 /  
 
 讯飞 (XFSRC)
 /  
 
Y
 易宠 (ESRC)
 /  

 一加 (ONESRC
 /  
 
 一起教育 (17SRC)
 https://security./  
 
 宜信 (CESRC)
 /  

 银联 (USRC)
 /  
 
 萤石 (YSCR)
 https://ysrc./  
 
 有赞 (YZSRC)
 /

0x03 注意事项

  1. 漏洞挖掘过程大家一定要授权进行,一定不要非法挖洞,注意挖洞尺度;
  2. 检索目标URL时可以通过多种途径,不一定只有上文介绍的那些方法;
  3. 文中介绍的python脚本,如果是window客户端需要修改部分代码;
  4. 文中的python脚本如果有运行时报错,大概率可能是没有安装python包,需要pip install安装一下;
  5. 如果官网下载的xray运行报错,是因为当前最新版本的xray默认运行不会生成新的配置文件,会找旧的配置文件就是文件,所以如果小伙伴之前没有用过这个工具,需要先下载旧版本然后生成配置文件拷贝给新版本进行使用;
  6. xray和360-crawlergo联动脚本需要修改浏览器目录配置,根据自己系统路径进行修改;
  7. 如果出现爬取的目标发送给xray,xray没有扫描的动作,这个博主暂时也不知道什么问题,更换其他目标就没有这个问题,感觉像是目标的问题;
  8. 然后就是大家有更好的工具也可以评论分享,大家一起来学习,共同进步,最后祝大家都早日成为安全届的大佬。