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.