关联漏洞
描述
CVE-2017-9805 is a critical vulnerability in Apache Struts 2's Rest Plugin, allowing attackers to execute remote code via a specially crafted XML payload. If exploited, this vulnerability can lead to unauthorized system access and compromise vulnerable applications.
介绍

# CVE-2017-9805: Apache Struts
2 Rest Plugin Remote Code Execution Vulnerability
## Deskripsi
**CVE-2017-9805** adalah kerentanannya pada **Apache Struts 2** yang terkait dengan penggunaan **Rest Plugin**. Kerentanan ini memungkinkan penyerang untuk melakukan **Remote Code Execution (RCE)** melalui manipulasi parameter XML yang diproses oleh server.
### Kerentanannya:
- **CVE ID**: [CVE-2017-9805](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9805)
- **Komponen yang Terpengaruh**: Apache Struts 2 dengan Rest Plugin
- **Jenis Kerentanannya**: Eksekusi Kode Jarak Jauh (RCE)
- **Skor CVSS**: 9.8 (Critical)
- **Status**: Ditambal pada Struts 2.5.12, Struts 2.3.34, dan versi lebih tinggi.
---
## Penjelasan Kerentanannya
Kerentanan ini memungkinkan penyerang untuk mengirimkan payload XML yang berbahaya ke server yang menjalankan **Apache Struts 2 Rest Plugin**. Jika server tidak melakukan sanitasi dengan baik, ini bisa memicu **Remote Code Execution (RCE)**, yang memungkinkan penyerang mengeksekusi perintah sistem yang arbitrer pada server.
### Bagaimana Kerentanannya Bekerja
1. Penyerang mengirimkan request HTTP berisi XML yang dimodifikasi.
2. XML tersebut diproses oleh aplikasi web yang menggunakan **Struts 2 Rest Plugin**.
3. Server yang tidak terlindungi akan mengeksekusi payload berbahaya yang terkandung di dalam XML tersebut.
4. Penyerang dapat mengeksekusi perintah apa pun pada server yang terpengaruh.
### Visualisasi Serangan
```plaintext
Penyerang Server Vuln Struts 2
| |
| Payload XML berbahaya |
|----------------------------------->|
| |
| Server mengeksekusi perintah |
| RCE dengan payload XML |
| |
Instalasi dan Penggunaan
Persyaratan Sistem
Python 3.x
Libraries:
requests
argparse
Langkah 1: Clone Repositori
Clone repositori ini ke sistem Anda menggunakan git:
bash
Copy code
git clone https://github.com/username/repository.git
cd repository
Langkah 2: Instal Dependensi
Instal dependensi yang diperlukan:
bash
Copy code
pip install requests
Langkah 3: Menjalankan Eksploitasi
Jalankan eksploitasi menggunakan skrip Python yang disediakan. Berikut adalah cara menggunakan cve2017.py untuk mengeksploitasi kerentanannya.
Menjalankan untuk satu URL:
bash
Copy code
python3 cve2017.py -u http://targetwebsite.com -c "echo test > /tmp/struts-pwn"
Menjalankan untuk daftar URL:
bash
Copy code
python3 cve2017.py -l url_list.txt -c "echo test > /tmp/struts-pwn"
Parameter:
-u atau --url : URL target untuk diuji
-l atau --list : Path ke file daftar URL untuk diuji
-c atau --cmd : Perintah untuk dijalankan pada server target (misalnya, echo test > /tmp/struts-pwn)
Penjelasan Kode
Fungsi Utama
url_prepare(url): Memastikan URL target ditangani dengan benar (menambahkan protokol HTTP jika belum ada).
exploit(url, cmd): Fungsi untuk mengirimkan payload berbahaya yang berisi perintah eksekusi. Jika server rentan, server akan mengeksekusi perintah tersebut.
check(url): Memverifikasi apakah server rentan terhadap CVE-2017-9805 dengan mencoba eksploitasi non-berbahaya terlebih dahulu dan melihat respons server.
Penjelasan Payload
Payload berisi XML yang sengaja dimodifikasi untuk mengeksekusi perintah sistem di server. XML ini adalah bentuk dari data yang diproses oleh server, dan jika tidak ditangani dengan benar, bisa mengeksekusi kode berbahaya.
Struts 2.5.12
Struts 2.3.34
Selain itu, langkah-langkah perlindungan berikut dapat mengurangi risiko:
Upgrade Apache Struts ke versi terbaru.
Nonaktifkan parsing XML yang tidak aman pada aplikasi Struts 2.
Gunakan Web Application Firewall (WAF) untuk mendeteksi eksploitasi terhadap kerentanannya.
文件快照
[4.0K] /data/pocs/e5903cc8ee788ec689d03a213ea39edf3871d944
├── [ 18K] cve2017-9805.py
├── [8.2K] cve2024.png
└── [3.8K] README.md
0 directories, 3 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。