Привет всем!
Хочу рассказать об обнаруженном мною баге в самом распространенном скрипте мониторинга от ГК (GoldCoders). Возможно это "байан" и у многих эта дыра закрыта, тогда "извиняйте"...
Вчера ко мне обратился админ очень известного мона с проблемой - у него на сайте поменяли кошельки. Он обнаружил, что сделали это при помощи внедренного js-скрипта. Ссылку на скрипт вставили в баннер. Баннер отображался на странице вместе с кодом скрипта и таким образом скрипт работал (менял кошельки прямо в коде страницы). Вопрос был один - как они его туда запихали?
Поковыряв код, я обнаружил что никакой фильтрации "ввода" перед записью в файл нет. И можно запихать в код баннера все, что угодно! Я поправил ему код, проверил - все работает, НО!
Тут обнаружилось еще более страшная вещь: оказывается ЛЮБЫЕ баннеры можно поменять просто так, даже не логинясь админом!
Ну вот например попробуйте у себя:
http://домен_монитора/?a=minibanners&action=siads_save_action&name_mini1=ha-ha-ha&num_mini=1
Сайт должен отработать и вернуться на
http://домен_монитора/?a=minibanners
При этом все (в данном случае) минибаннеры сотрутся и останется один у которого имя "ha-ha-ha". (смотреть minibanners.php)
К сожалению, сама эта запись реально нужна при покупке баннеров и просто отключить ее нельзя!
По желанию админа дыра была закрыта, даже в ущерб функционалу.
Вот такая веселая история
Хочу рассказать об обнаруженном мною баге в самом распространенном скрипте мониторинга от ГК (GoldCoders). Возможно это "байан" и у многих эта дыра закрыта, тогда "извиняйте"...
Вчера ко мне обратился админ очень известного мона с проблемой - у него на сайте поменяли кошельки. Он обнаружил, что сделали это при помощи внедренного js-скрипта. Ссылку на скрипт вставили в баннер. Баннер отображался на странице вместе с кодом скрипта и таким образом скрипт работал (менял кошельки прямо в коде страницы). Вопрос был один - как они его туда запихали?
Поковыряв код, я обнаружил что никакой фильтрации "ввода" перед записью в файл нет. И можно запихать в код баннера все, что угодно! Я поправил ему код, проверил - все работает, НО!
Тут обнаружилось еще более страшная вещь: оказывается ЛЮБЫЕ баннеры можно поменять просто так, даже не логинясь админом!
Ну вот например попробуйте у себя:
http://домен_монитора/?a=minibanners&action=siads_save_action&name_mini1=ha-ha-ha&num_mini=1
Сайт должен отработать и вернуться на
http://домен_монитора/?a=minibanners
При этом все (в данном случае) минибаннеры сотрутся и останется один у которого имя "ha-ha-ha". (смотреть minibanners.php)
К сожалению, сама эта запись реально нужна при покупке баннеров и просто отключить ее нельзя!
По желанию админа дыра была закрыта, даже в ущерб функционалу.
Вот такая веселая история
Последнее редактирование: