10 KiB
WebDav
Trickest를 사용하여 세계에서 가장 고급 커뮤니티 도구를 활용한 워크플로우를 쉽게 구축하고 자동화할 수 있습니다.
오늘 바로 액세스하세요:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- 독점적인 NFT 컬렉션인 The PEASS Family를 발견하세요.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm를 팔로우하세요.
- HackTricks와 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.
WebDav가 활성화된 HTTP 서버를 다룰 때는, 일반적으로 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
출력 예시:
이는 .txt와 .html 확장자가 실행되는 것을 의미하지 않습니다. 이는 웹을 통해 이 파일에 접근할 수 있다는 것을 의미합니다.
Cadaver
이 도구를 사용하여 WebDav 서버에 연결하고 수동으로 업로드, 이동 또는 삭제와 같은 작업을 수행할 수 있습니다.
cadaver <IP>
PUT 요청
The PUT method is an HTTP request method used to upload or update a resource on a server. It is commonly used in WebDAV (Web Distributed Authoring and Versioning) to upload files to a remote server.
PUT 요청은 서버에 리소스를 업로드하거나 업데이트하는 데 사용되는 HTTP 요청 메서드입니다. 이는 일반적으로 WebDAV(Web Distributed Authoring and Versioning)에서 원격 서버에 파일을 업로드하는 데 사용됩니다.
Syntax
PUT /path/to/resource HTTP/1.1
Host: example.com
Content-Type: application/octet-stream
Content-Length: <length>
<file content>
Example
PUT /files/myfile.txt HTTP/1.1
Host: example.com
Content-Type: text/plain
Content-Length: 12
Hello, World!
In this example, a PUT request is made to upload a file named myfile.txt
to the /files
directory on the example.com
server. The request includes the file content and relevant headers such as Content-Type
and Content-Length
.
이 예제에서는 myfile.txt
라는 파일을 example.com
서버의 /files
디렉토리에 업로드하기 위해 PUT 요청이 수행됩니다. 요청에는 파일 내용과 Content-Type
, Content-Length
와 같은 관련 헤더가 포함됩니다.
curl -T 'shell.txt' 'http://$ip'
MOVE 요청
The MOVE method is used in WebDAV to move a resource from one location to another. It is similar to the HTTP PUT
method, but instead of creating a new resource, it moves an existing resource to a new location.
MOVE 요청은 WebDAV에서 리소스를 한 위치에서 다른 위치로 이동하는 데 사용됩니다. 이는 HTTP PUT
메서드와 유사하지만, 새로운 리소스를 생성하는 대신 기존 리소스를 새 위치로 이동시킵니다.
Syntax
The syntax for a MOVE request is as follows:
MOVE /path/to/resource HTTP/1.1
Host: example.com
Destination: /new/path/to/resource
Example
Here is an example of a MOVE request:
MOVE /files/document.txt HTTP/1.1
Host: example.com
Destination: /archive/document.txt
In this example, the document.txt
file located at /files
on the server example.com
is moved to the /archive
directory.
Response
The server should respond with a 200 OK
status code if the MOVE request is successful. If the resource cannot be moved, the server may respond with a 409 Conflict
status code.
Security Implications
The MOVE method can be used by an attacker to move sensitive files to a location accessible to them. This can lead to unauthorized access or exposure of sensitive information. It is important to properly secure WebDAV servers and restrict access to prevent such attacks.
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 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- The PEASS Family를 발견하세요. 독점적인 NFT 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm을 팔로우하세요.
- Hacking 트릭을 공유하려면 HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하세요.
Trickest를 사용하여 세계에서 가장 고급한 커뮤니티 도구를 활용한 워크플로우를 쉽게 구축하고 자동화할 수 있습니다.
오늘 바로 액세스하세요:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}