Share
## https://sploitus.com/exploit?id=05D4FDBE-9024-522A-A2A1-76D8EB97CE6C
# ninja-form-exploit
**CVE-2026-0740** โ Multi-threaded vulnerability scanner for the Ninja Forms File Upload path traversal issue on WordPress.
## Deskripsi
`main.py` memindai daftar target WordPress untuk menentukan apakah plugin Ninja Forms File Uploads rentan terhadap CVE-2026-0740. Alur singkatnya:
1. Normalisasi URL (`http`/`https`, strip trailing slash)
2. Deteksi plugin lewat marker `nfpluginsettings.js` di halaman utama
3. Ambil upload nonce via `wp-admin/admin-ajax.php` (`action=nf_fu_get_new_nonce`)
4. Upload PoC file dengan path traversal dan **fuzz directory `1`โ`100`**
5. Verifikasi file terupload di `wp-content/uploads/ninja-forms/{dir}/`
6. Simpan target vulnerable ke file output
## Persyaratan
- Python 3.7+
- Library `requests`
```bash
pip install requests
```
## Penggunaan
```bash
python main.py
```
**Contoh:**
```bash
python main.py targets.txt 20
```
### Format file target
Satu URL per baris:
```
example.com
https://site.example
http://another.example
```
Protocol opsional โ jika tidak ada, script memakai `http://` lalu fallback ke `https://` jika gagal.
## Output
| Item | Nilai |
|------|--------|
| File hasil | `vulnerable_targets.txt` |
| Format baris | `https://target | https://target/wp-content/uploads/ninja-forms/{dir}/poc_test.txt` |
| PoC file | `poc_test.txt` |
| PoC content | `GIF89;a VULNERABILITY_TEST_SUCCESSFUL` |
| Timeout | 7 detik |
| Directory fuzz | `1`โ`100` |
File output di-reset setiap kali scan dimulai.
## Status di terminal
| Ikon | Arti |
|------|------|
| `[*]` | Info / plugin terdeteksi / fuzzing |
| `[+]` | Vulnerable |
| `[โ]` | Tidak vulnerable |
| `[~]` | Skip (plugin tidak ada) |
| `[-]` | Error / koneksi gagal |
| `[!]` | Peringatan (usage) |
## Konfigurasi (di dalam `main.py`)
```python
FILE_NAME = "poc_test.txt"
POC_CONTENT = "GIF89;a VULNERABILITY_TEST_SUCCESSFUL"
TIMEOUT = 7
OUTPUT_FILE = "vulnerable_targets.txt"
FUZZ_RANGE = range(1, 101)
```
## Catatan
- Script memakai `verify=False` (SSL warning dimatikan) agar target dengan sertifikat invalid tetap bisa di-scan.
- Thread pool memproses banyak target secara paralel sesuai argumen kedua.
- Hanya gunakan pada sistem yang Anda miliki atau yang izin pengujiannya sudah diperoleh.