Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2023-50164 PoC — Apache Struts: File upload component had a directory traversal vulnerability

Source
Associated Vulnerability
Title:Apache Struts: File upload component had a directory traversal vulnerability (CVE-2023-50164)
Description:An attacker can manipulate file upload params to enable paths traversal and under some circumstances this can lead to uploading a malicious file which can be used to perform Remote Code Execution. Users are recommended to upgrade to versions Struts 2.5.33 or Struts 6.3.0.2 or greater to fix this issue.
Readme
# Exploit CVE-2023-50164 para o Laboratório HackTheBox

## Descrição
Este **exploit** foi desenvolvido especificamente para o laboratório **Strutted** da **HackTheBox**, visando explorar a vulnerabilidade **CVE-2023-50164** no Apache Struts 2. A falha permite **path traversal** através de uma falha no tratamento dos parâmetros de upload de arquivos. O exploit foi criado com o propósito de demonstrar como um atacante pode realizar **upload de arquivos maliciosos** e obter **execução remota de código (RCE)**.

### Observação:
Este **exploit** foi desenvolvido exclusivamente para fins educacionais dentro do ambiente controlado da HackTheBox e **não deve ser utilizado em sistemas reais sem permissão explícita**. A exploração de vulnerabilidades sem consentimento é ilegal e antiética.

## Objetivo
O objetivo deste exploit é demonstrar como a falha no Apache Struts 2, especificamente no endpoint de upload de arquivos, pode ser explorada para:
1. **Realizar Path Traversal** e acessar arquivos não autorizados.
2. **Fazer upload de um arquivo malicioso** para o servidor.
3. **Executar código remotamente (RCE)** no servidor afetado.

## Descrição Técnica
A vulnerabilidade **CVE-2023-50164** está associada ao tratamento incorreto dos parâmetros de upload de arquivos, permitindo que um atacante manipule o nome do arquivo enviado para realizar **path traversal**.

### Passos do Exploit
1. **Manipulação do Parâmetro HTTP**: O exploit modifica os parâmetros HTTP para incluir caracteres de traversal de diretório (`../`), permitindo o upload de um arquivo malicioso em uma pasta não autorizada.
   
2. **Envio do Arquivo Malicioso**: O exploit envia um arquivo malicioso usando o método POST no endpoint `/upload.action`, explorando a falha de **case sensitivity** dos parâmetros HTTP.

3. **Execução de Código Remoto**: O atacante pode inserir código malicioso que será executado no servidor após o upload.

## Exemplo de Requisição HTTP
Abaixo está um exemplo de uma requisição HTTP que pode ser utilizada para explorar a vulnerabilidade:

```http
POST /upload.action HTTP/1.1
Host: vulnerable-server.com
Content-Type: multipart/form-data; boundary=------------------------abcdef
--------------------------abcdef
Content-Disposition: form-data; name="Upload"; filename="../../shell.jsp"
Content-Type: application/octet-stream

[conteúdo do arquivo]
--------------------------abcdef--
File Snapshot

[4.0K] /data/pocs/7516d9697a3ec46f7fa4bb089526ea95a4f99491 ├── [5.3K] exploit.py ├── [2.4K] README.md ├── [ 17] requirements.txt └── [1.6K] upload.py 0 directories, 4 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →