WebDav

Reading time: 3 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

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 yükleme ve çalıştırma işlemini içerir.

WebDav sunucusuna erişim genellikle geçerli kimlik bilgileri gerektirir; WebDav bruteforce 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

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 bu durumu aşabilirsiniz ve dosya, 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ı).

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'ini bulacaksınız. 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

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin