CGI
Information
CGI-скрипти - це perl-скрипти, тому, якщо ви зламали сервер, який може виконувати .cgi скрипти, ви можете завантажити perl реверс-шелл (/usr/share/webshells/perl/perl-reverse-shell.pl
), змінити розширення з .pl на .cgi, надати дозволи на виконання (chmod +x
) і отримати доступ до реверс-шеллу з веб-браузера для його виконання. Щоб перевірити наявність CGI вразливостей, рекомендується використовувати nikto -C all
(і всі плагіни)
ShellShock
ShellShock - це вразливість, яка впливає на широко використовувану Bash командну оболонку в Unix-подібних операційних системах. Вона націлена на здатність Bash виконувати команди, передані додатками. Вразливість полягає в маніпуляції змінними середовища, які є динамічними іменованими значеннями, що впливають на те, як процеси працюють на комп'ютері. Зловмисники можуть експлуатувати це, прикріплюючи шкідливий код до змінних середовища, який виконується при отриманні змінної. Це дозволяє зловмисникам потенційно скомпрометувати систему.
Експлуатуючи цю вразливість, сторінка може викидати помилку.
Ви можете знайти цю вразливість, помітивши, що використовується стара версія Apache і cgi_mod (з папкою cgi) або використовуючи nikto.
Test
Більшість тестів базуються на ехо чогось і очікують, що ця строка буде повернена у веб-відповіді. Якщо ви вважаєте, що сторінка може бути вразливою, шукайте всі cgi-сторінки та тестуйте їх.
Nmap
Curl (відображений, сліпий та поза каналом)
Експлуатація
Proxy (MitM до запитів веб-сервера)
CGI створює змінну середовища для кожного заголовка в http запиті. Наприклад: "host:web.com" створюється як "HTTP_HOST"="web.com"
Оскільки змінна HTTP_PROXY може бути використана веб-сервером. Спробуйте надіслати заголовок, що містить: "Proxy: <IP_attacker>:<PORT>" і якщо сервер виконує будь-який запит під час сесії. Ви зможете захопити кожен запит, зроблений сервером.
Old 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 Example.
Last updated