Share
## https://sploitus.com/exploit?id=893B5F82-10CA-5332-88CA-B180FB24BAD3
# CVE-2026-0911 — Hustle modül import PoC

WordPress eklentisi **Hustle** (`wordpress-popup`, WPMU DEV) için [CVE-2026-0911](https://nvd.nist.gov/vuln/detail/CVE-2026-0911) kapsamında, kimlik doğrulaması gerektiren **modül içe aktarma** uç noktası üzerinden yapılan yükleme davranışını test eden bir **araştırma / pentest yardımcı** aracıdır.

Bu depo veya dosya seti içindeki `CVE-2026-0911.py` betiği, yalnızca **sahip olduğunuz** veya **yazılı izinle test ettiğiniz** sistemlerde kullanılmalıdır.

---

## Kısa özet (zafiyet mantığı)

Etkilenen sürümlerde (Wordfence/NVD: **7.8.9.2 ve öncesi**) `action_import_module()` içinde `wp_handle_upload()` çağrısı **`test_type => false`** ile yapıldığı için dosya türü doğrulaması zayıf kalır; import sonrası JSON doğrulaması başarısız olsa bile yüklenen dosya **silinmeyebilir** (“yetim” dosya). Sunucu `wp-content/uploads` altında PHP çalıştırıyorsa bu, pratikte uzaktan kod çalıştırmaya giden bir zincirin parçası olabilir. Yamalı sürümlerde `test_type => true` ve geçici `upload_mimes` ile `.json` kısıtı gelir.

Ayrıntılı teknik özet için NVD kaydı ve Wordfence referanslarına bakın.

---

## Gereksinimler

- Python **3.9+** (tip ipuçları `from __future__ import annotations` ile uyumludur)
- Paket: **requests**

Kurulum örneği:

```bash
pip install requests
```

---

## Çalıştırma

En az bir hedef (`-u` veya `-l`) ve geçerli WordPress oturumu (`--cookie` veya `--cookie-file`) zorunludur.

```bash
python CVE-2026-0911.py -u "https://ornek.com" --cookie "wordpress_logged_in_...=...; ..."
```

Yardım:

```bash
python CVE-2026-0911.py --help
```

---

## Komut satırı parametreleri

| Parametre | Açıklama |
|-----------|----------|
| `-u`, `--url` | Tek hedef kök URL (örn. `https://site.com`) |
| `-l`, `--list` | Satır başına bir URL içeren dosya (`#` ile yorum) |
| `--cookie` | Tarayıcıdan kopyalanan çerez dizgisi |
| `--cookie-file` | Çerezi tek satırda tutan dosya |
| `--nonce` | `hustle_single_action` için elle WordPress nonce (otomatik çekim yerine) |
| `--admin-page` | Nonce’ın çekileceği `admin.php?page=` değeri (varsayılan: `hustle_popup_listing`) |
| `--module-id` | POST `moduleId` (varsayılan `0`: geçersiz modül → import akışı) |
| `--module-type` | `popup`, `slidein`, `embedded`, `social_sharing` |
| `--module-mode` | Örn. `informational`, `optin` |
| `--remote-name` | Multipart’te gönderilen dosya adı (varsayılan: `probe_rce.php`) |
| `--payload-file` | Yüklenecek içeriği dosyadan oku (`--uploader` ve varsayılan probeyi geçersiz kılar) |
| `--uploader` | Yerleşik mini PHP form-uploader gövdesini kullan |
| `--workers` | Liste modunda eşzamanlı iş parçacığı sayısı (varsayılan: 8) |
| `--timeout` | İstek zaman aşımı saniye (varsayılan: 25) |
| `--verify-ssl` | TLS doğrulamasını aç (varsayılan: kapalı) |
| `--debug` | Ek hata ayıklama çıktısı |
| `--quiet` | Domain/adım loglarını kapat; özet odaklı |
| `-o`, `--output` | Başarılı “hit” satırlarının eklendiği dosya |

---

## Çıktı ve loglama

- Varsayılan olarak her hedef için **Türkçe adım logları** yazdırılır: nonce GET isteği, `admin-ajax.php` POST özeti, olası aday URL’ler. Çoklu hedefte satırlar iş parçacıklarından geldiği için ara ara karışık görünebilir; her satırda hedef alan adı bulunur.
- `--quiet` ile bu ayrıntılar susturulur.
- **Başarılı** sayılan sonuçlar (betiğin iç mantığında “yetim yükleme” sinyali) anında `-o` dosyasına **eklenir** (`append`), `flush` / mümkünse `fsync` ile diske yazılır. Varsayılan dosya adı: `cve-2026-0911-hits.txt` (çalışma dizininde mutlak yol özetlenir).
- Dosya formatı: bir satırda hedef ve açıklama; altında girintili aday shell URL’leri.

---

## Örnek senaryolar

Tek site, TLS doğrulamalı, hata ayıklama:

```bash
python CVE-2026-0911.py -u "https://lab.local" --cookie-file cookie.txt --verify-ssl --debug
```

Liste taraması, 16 işçi, özel çıktı:

```bash
python CVE-2026-0911.py -l hedefler.txt --cookie "..." --workers 16 -o sonuclar.txt
```

Yerleşik uploader gövdesi ve özel uzak dosya adı:

```bash
python CVE-2026-0911.py -u "https://lab.local" --cookie "..." --uploader --remote-name test.php
```

---

## Ön koşullar ve sınırlar

- Geçerli **WordPress oturumu** ve Hustle yönetim arayüzüne erişim; nonce genelde `optinVars` içindeki `single_module_action_nonce` alanından okunur.
- **Ücretsiz kota:** `moduleId=0` yolunda eklenti, yüklemeden önce modül limiti nedeniyle hata döndürebilir; bu durumda dosya yazılmaz.
- Aday URL’ler `wp-content/uploads/YYYY/MM/` varsayımına göre üretilir; WordPress dosyayı yeniden adlandırırsa gerçek yol farklı olabilir.
- Aynı `--cookie` farklı domainlerde çalışmaz; çoklu site testinde her ortam için uygun oturum gerekir.

---

## Çıkış kodu

- Başarılı en az bir “hit” varsa `0`, yoksa `0` olmayan bir kod (betik içi `main` dönüşü).
- `Ctrl+C` ile kesme: `130`.

---

## Referanslar

- [NVD — CVE-2026-0911](https://nvd.nist.gov/vuln/detail/CVE-2026-0911)
- [WordPress.org — Hustle eklentisi](https://wordpress.org/plugins/wordpress-popup/)
- Wordfence tehdit istihbaratı bağlantısı NVD “References” bölümünde listelenir.

---

## Sorumluluk reddi

Bu araç yalnızca **yasal güvenlik testi**, **eğitim** ve **savunma amaçlı** kullanım içindir. Yetkisiz sistemlerde kullanım yasalara aykırıdır ve ağır cezalara yol açabilir. Yazarlar ve katkıda bulunanlar kötüye kullanımdan sorumlu tutulamaz.