Gentle_knife's Studio.

自动化漏洞通报

Word count: 1.7kReading time: 8 min
2025/02/26
loading

目标

漏洞通告

自动化吧,建议ai+爬虫自动生产就行

监控下公众号或者威胁情况官网的更新,然后自动调大模型生产就行了

https://avd.aliyun.com/high-risk/list 数据源可以用这个,大模型自己选吧,无所谓,用免费的就行

问题

表格

时间戳

滑块验证

实战

由于本人疯狂拷打AI,把源代码复制给AI叫他写爬虫代码,但是写出来老是报错。

于是主播灵机一动,搜索源代码里的

1
<!-- bugList -->

和浏览次数,截取中间的源代码,然后再爬吗

QQ20250309-163522

爬出来大概是

1
2
3
4
5
6
7
8
9
10
11
12
<div class="vulbar"> 
<div align="center"><b>IBM OpenPages默认权限错误漏洞(CVE-2024-43176)</b></div><br/><b>发布日期:</b>2025-01-09<br/><b>更新日期:</b>2025-03-07<br/><br/><b>受影响系统:</b><blockquote>IBM OpenPages 9.0</blockquote><b>描述:</b><hr/>CVE(CAN) ID: <a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-43176" target="_blank">CVE-2024-43176</a><br>
<br>
IBM OpenPages是美国国际商业机器(IBM)公司的一个由AI驱动、高度可扩展的管治、风险与合规(GRC)解决方案。<br>
IBM OpenPages 9.0版本存在默认权限错误漏洞,经过身份认证的攻击者可利用该漏洞获取配置等敏感信息。<br>
<br/>
&lt;**&gt;<br/><br/><b>建议:</b><hr/>厂商补丁:<br>
<br>
IBM<br/>
---<br/>
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:<br/>
<a href="https://www.ibm.com/support/pages/node/7174640" target="_blank">https://www.ibm.com/support/pages/node/7174640</a><br/><br/><b>浏览次数:</b>153<br/><b>严重程度:</b>0(网友投票)<br/></br></br></br></br></br></br></div>

把所有的<>标签都删掉

省略一些修修补补的内容

接入的火山方舟的api

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import os
import requests
from bs4 import BeautifulSoup
import re
from volcenginesdkarkruntime import Ark


# 接入火山方舟大模型API进行格式整理
# 假设这里是你接入大模型API的函数,传入文本并返回格式化的内容
def format_with_api(text):
api_key = "" # 直接填写你的 API 密钥
client = Ark(
api_key=api_key,
base_url="https://ark.cn-beijing.volces.com/api/v3" # 替换为实际API地址
)

# 构建请求数据
data = {
"model": "ep-20250309161157-ng6kn", # 使用你的推理接入点ID
"messages": [
{"role": "system", "content": "你是人工智能助手"},
{"role": "user",
"content": f"请将以下漏洞信息整理成标准格式:\n{text}\n\n格式为:\nPHPYun代码注入漏洞(CVE-2024-54724)\n发布日期:2025-01-09\n更新日期:2025-03-07\n受影响系统:PHPYun PHPYun < 7.0.2\n描述:CVE(CAN) ID: CVE-2024-54724\n\nPHPYun是中国鑫潮(PHPYun)公司的一个基于PHP和MySQL数据库的人才和企业招聘和就业的高效解决方案。PHPYun 7.0.2之前版本存在代码注入漏洞,攻击者可利用该漏洞通过写入并添加任意文件执行代码。\n\n建议:\n厂商补丁:\n\nPHPYun\n------\n厂商尚未提供漏洞修复方案,请关注厂商主页更新:\nhttps://github.com/la12138la/detail/blob/main/1.md"},
]
}

# 调用火山方舟API
response = client.chat.completions.create(**data)

# 打印响应内容,查看其结构
print(response)

# 假设返回的是一个带有 'choices' 键的字典
if response and hasattr(response, 'choices') and len(response.choices) > 0:
choice = response.choices[0]
# 查看 choice 的属性,确认如何访问内容
print("Choice内容:", choice)

# 可能需要改成适当的属性访问方法,以下是尝试
if hasattr(choice, 'message') and hasattr(choice.message, 'content'):
return choice.message.content
else:
return "格式化失败"
else:
print("API请求失败或响应格式不正确")
return "格式化失败"


# 获取网页源代码
url = 'http://www.nsfocus.net/vulndb/112604' # 替换为目标网站的URL
response = requests.get(url)
response.encoding = 'utf-8'

# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')

# 提取内容
# 定位到包含漏洞信息的 div
vulbar_div = soup.find('div', class_='vulbar')

# 如果找到了包含漏洞信息的div
if vulbar_div:
# 使用正则表达式提取中间的部分(不包括浏览次数和bugList等)
text = str(vulbar_div)

# 使用正则去除不需要的部分
text = re.sub(r'<!--.*?-->', '', text, flags=re.DOTALL) # 去除注释部分
text = re.sub(r'浏览次数:\d+', '', text) # 去除浏览次数

# 去除所有HTML标签
text = re.sub(r'<.*?>', '', text)
# 处理 HTML 实体和特殊字符
text = re.sub(r'&lt;', '<', text) # 替换 < 相关的 HTML 实体
text = re.sub(r'&gt;', '>', text) # 替换 > 相关的 HTML 实体
text = re.sub(r'&amp;', '&', text) # 替换 & 相关的 HTML 实体
text = re.sub(r'&quot;', '"', text) # 替换 " 相关的 HTML 实体
text = re.sub(r'&nbsp;', ' ', text) # 替换空格的 HTML 实体

# 提取CVE编号和漏洞标题
match = re.search(r'([^\d]*CVE-\d{4}-\d{5,})', text)
if match:
# 获取漏洞编号及名称部分
cve_title = match.group(1).strip()

# 去除文件名中的非法字符
cve_title = re.sub(r'[<>:"/\\|?*\n]', '', cve_title)

# 从URL中提取数字部分
url_match = re.search(r'/vulndb/(\d+)', url)
if url_match:
# 提取并将数字部分作为文件名的前缀
file_name = f"{url_match.group(1)}_{cve_title}"

file_name = file_name + ')'

# 创建文件路径
file_path = os.path.join('C:\\Users\\111\\Desktop\\爬虫', f'{file_name}.txt')

# 确保目标文件夹存在
os.makedirs(os.path.dirname(file_path), exist_ok=True)

# 现在调用大模型API进行格式整理
formatted_content = format_with_api(text)
print("格式化后的内容:")
print(formatted_content)

# 将格式化后的内容保存到文件
with open(file_path, 'w', encoding='utf-8') as f:
f.write(formatted_content) # 保存格式化后的内容

print(f"文件已保存:{file_path}")
else:
print('未找到URL中的数字部分')
else:
print('未找到标题或CVE编号,无法保存文件')
else:
print('未找到目标内容')

QQ20250309-164110

QQ20250309-164123

还能改进的地方

检测http://www.nsfocus.net/index.php?act=sec_bug&type_id=&os=&keyword=&page=1
里面的url的数字112604之类的有没有爬过,没有爬过就爬

改字体存在docx之类的

保存文件后打开

CATALOG
  1. 1. 目标
  2. 2. 问题
  3. 3. 实战
  4. 4. 还能改进的地方