86 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Drupal
{{#include ../../../banners/hacktricks-training.md}}
## Keşif
- **meta** kontrol et
```bash
curl https://www.drupal.org/ | grep 'content="Drupal'
```
- **Node**: Drupal **içeriğini düğümler kullanarak indeksler**. Bir düğüm **herhangi bir şeyi** tutabilir, örneğin bir blog yazısı, anket, makale vb. Sayfa URI'leri genellikle `/node/<nodeid>` biçimindedir.
```bash
curl drupal-site.com/node/1
```
## Enumeration
### Version
- `/CHANGELOG.txt` dosyasını kontrol edin
```bash
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
```
> [!NOTE]
> Drupal'ın daha yeni kurulumları varsayılan olarak `CHANGELOG.txt` ve `README.txt` dosyalarına erişimi engeller.
### Kullanıcı numaralandırma
Drupal varsayılan olarak **üç tür kullanıcı** destekler:
1. **`Yönetici`**: Bu kullanıcı, Drupal web sitesinin tam kontrolüne sahiptir.
2. **`Kimlik Doğrulanmış Kullanıcı`**: Bu kullanıcılar web sitesine giriş yapabilir ve izinlerine bağlı olarak makaleleri ekleyip düzenleyebilirler.
3. **`Anonim`**: Tüm web sitesi ziyaretçileri anonim olarak tanımlanır. Varsayılan olarak, bu kullanıcıların yalnızca gönderileri okumasına izin verilir.
**Kullanıcıları numaralandırmak için:**
- **Kullanıcı sayısını al:** Sadece `/user/1`, `/user/2`, `/user/3`... erişin, hata döndüğünde kullanıcının mevcut olmadığını belirtir.
- **Kayıt**: `/user/register` erişin ve bir kullanıcı adı oluşturmaya çalışın, eğer isim zaten alınmışsa sunucudan bir hata ile belirtilecektir.
- **Şifreyi sıfırla**: Bir kullanıcının şifresini sıfırlamaya çalışın, eğer kullanıcı mevcut değilse bu açıkça bir hata mesajında belirtilecektir.
### Gizli sayfalar
Yeni sayfaları bulmak için **`/node/FUZZ`** adresine bakın, burada **`FUZZ`** bir sayıdır (örneğin 1'den 1000'e kadar).
### Yüklenmiş modüller bilgisi
```bash
#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml
# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml
```
## Otomatik Araçlar
```bash
droopescan scan drupal -u http://drupal-site.local
```
## RCE
Drupal web konsoluna erişiminiz varsa, RCE almak için bu seçenekleri kontrol edin:
{{#ref}}
drupal-rce.md
{{#endref}}
## XSS'den RCE'ye
- [**Drupalwned**](https://github.com/nowak0x01/Drupalwned): **XSS'i RCE veya Diğer Kritik Güvenlik Açıklarına Yükselten** Drupal Sömürü Scripti. Daha fazla bilgi için [**bu gönderiye**](https://nowak0x01.github.io/papers/76bc0832a8f682a7e0ed921627f85d1d.html) bakın. **Drupal Sürümleri 7.X.X, 8.X.X, 9.X.X ve 10.X.X için destek sağlar ve şunları yapmanıza olanak tanır:**
- _**Yetki Yükseltme:**_ Drupal'da bir yönetici kullanıcısı oluşturur.
- _**(RCE) Şablon Yükle:**_ Drupal'a arka kapılı özel şablonlar yükler.
## Sömürü Sonrası
### settings.php'yi Oku
```bash
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
```
### Veritabanından kullanıcıları dökme
```bash
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'
```
{{#include ../../../banners/hacktricks-training.md}}