文章目录
- 一、CNVD介绍
- 事件型漏洞
- 通用型漏洞
- 二、挖掘思路
- 1. 黑盒测试
- 资产搜集
- fofa API筛选脚本
- 2. 白盒测试
- 代码审计
- 3. google hack
- 注意事项
一、CNVD介绍
国家信息安全漏洞共享平台(简称CNVD),对于白帽子来说,挖掘的漏洞提交后会有一定的奖励,如积分可以兑换京东卡,这里介绍的是如何挖掘cnvd证书,证书的条件如下
事件型漏洞
只有当涉及三大运营商(移动、联通、电信)的中高危漏洞,或者党政机关、重要行业单位、科研院所、以及重要企事业单位的高危事件型漏洞时,才可颁发原创漏洞证书,参考下图(绵羊墙):
通用型漏洞
- cvss评分超过4分,评分细则:https://www.cnvd.org.cn/webinfo/show/3932
- 弱口令漏洞需要网站设备如防火墙路由器等弱口令才算。
- 注册资金必须不小于五千万,但实际在2000万以上就可。
- 存在漏洞大于10例,存在漏洞的网站需要存在多个,漏洞复现3例即可。
证书样例:
二、挖掘思路
1. 黑盒测试
寻找资产满足的公司系统进行定向挖掘:寻找资产满足要求的公司–》渗透测试
资产搜集
借助网站:如爱企查、企查查、天眼查寻找符合的资产:
这里使用爱企查:高级搜索
筛选一下资产在2000-3000万企业,在加一些限制:
直接导出:
fofa API筛选脚本
需要使用fofaAPI脚本筛选:
这里使用的这条语句将size大于20的返回,原理就是包含公司的技术支持界面大于20条数据会返回是符合条件的规则,为了去除一些脏数据这里只搜索不带域名的公司,所以会漏掉一些公司,大家可以看情况调节size的值:
python fofa.py -u input.txt
脚本使用的规则:
xxx公司 && status_code="200" && country="CN" && is_domain=false
import requests
import base64
import argparse
import time
def read_targets_from_file(filename):
with open(filename, 'r', encoding='utf-8') as file:
targets = file.readlines()
return [target.strip() for target in targets]
def build_query_string(target):
query = f'"{target}" && status_code="200" && country="CN" && is_domain=false'
return query
def encode_query_to_base64(query):
query_bytes = query.encode('utf-8')
encoded_query_bytes = base64.b64encode(query_bytes)
encoded_query = encoded_query_bytes.decode('utf-8')
return encoded_query
def main():
parser = argparse.ArgumentParser(description="Fofa Info Search Tool by Your Name")
parser.add_argument("-u", "--file", help="File containing target strings", required=True)
args = parser.parse_args()
api_url = "https://fofa.info/api/v1/search/next"
email = "这里填入邮件"
key = "这里填入APIkey"
targets = read_targets_from_file(args.file)
with open("ok.txt", "w", encoding="utf-8") as output_file:
for target in targets:
query = build_query_string(target)
encoded_query = encode_query_to_base64(query)
params = {
"qbase64": encoded_query,
"size": 10,
"email": email,
"key": key,
}
response = requests.get(api_url, params=params)
if response.status_code == 200:
data = response.json()
if data.get("size", 0) > 20:
output_file.write(query + "\n")
print(f"Response for target '{target}':")
print(data)
# 在这里您可以处理返回的JSON数据
else:
print(f"Request for target '{target}' failed with status code:", response.status_code)
time.sleep(1) # 休息1秒
if __name__ == "__main__":
main()
就可以去寻找这里的通用web进行漏洞挖掘了:
2. 白盒测试
代码审计
有很多开源的cms系统存在很多漏洞,可以在以下网站进行下载:
https://gitee.com/
https://www.jb51.net/
http://www.tuohang.net/yuanma/
https://github.com/
使用phpstudy、Wampserver、宝塔等快速建站:
使用代码审计工具快速审计:Fortify、Seay、
使用安全扫描器如:awvs、appscan
3. google hack
使用google语法快速挖掘:
这里来个简单的语法:
inurl:操作手册 site:gov.cn
inurl:php site:com.cn
这里面可能会泄露一些信息,这里为突破到后台然后挖掘。
注意事项
- cnvd可能会重复。
- 审核时间很长大概1个月(政务网gov.vn审核1周)。
- 发证书时间也是很长大概1个月后才会发证书。
- 不要实行破坏性渗透,否则后果自负。