ВНИМАНИЕ! Уязвимость в старом скрипте монитора от ГK - GoldCoders HYIP Lister

Спанч Боб

МАСТЕР
Регистрация
30.08.2007
Сообщения
1,974
Реакции
237
Поинты
0.000
Привет всем!

Хочу рассказать об обнаруженном мною баге в самом распространенном скрипте мониторинга от ГК (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)
К сожалению, сама эта запись реально нужна при покупке баннеров и просто отключить ее нельзя!
По желанию админа дыра была закрыта, даже в ущерб функционалу.

Вот такая веселая история :dirol:
 
Последнее редактирование:

Sanik

ТОП-МАСТЕР
Регистрация
13.10.2007
Сообщения
9,039
Реакции
1,309
Поинты
222.000
Как временное решение:

Меняем права на файлы в папке /inc/adsadmin на 444 (только чтение)
редактирование баннеров перестанет работать. продажа баннеров, естественно тоже.

добавлено через 36 минут
Решение проблемы найдено.
Инфа не нарытая в сети а взята из личной переписки с программистом сегодня 22.04.13. Этого программиста многие админы мониторов знают.

Проблема экранирования вставки скриптов решается конечно же банально через ту же функцию ereg_replace или даже банально "убивать" все вызовы ява-скрипт.
А вторую проблему, судя по описанию, решили отключением автоустановки банеров по оплате.
Кстати эта проблема тянется у GC давно (нашел скрипт самое раннее 2008 года). Программисты поленились разбить функции для админа и для пользователя в 2 разных файла, а так же не сделали никакой проверки на "админ" в функциях админа. В итоге у "GC Lister" есть дырка - пользователь может управлять банерами в обход админа, если включена автоустановка банеров.

Вопрос решается и без отключения одним из вариантов:

1. Сделать проверку на "админ" в функциях админа (файл adsfunc.php)
2. Для лентяев - добавить 3 строчки в index.php и запретить работу с этими функциями (у меня уже была своя библиотека работы с платежами ЛР и ПМ, поэтому мне было так проще)


Если надо, можно постучаться на ICQ 123530456 , надежнее на почту [email protected] и за скромное вознаграждение в ЛР вопрос решится.
 
Последнее редактирование:

Спанч Боб

МАСТЕР
Регистрация
30.08.2007
Сообщения
1,974
Реакции
237
Поинты
0.000
Вопрос решается и без отключения одним из вариантов:

1. Сделать проверку на "админ" в функциях админа (файл adsfunc.php)
2. Для лентяев - добавить 3 строчки в index.php и запретить работу с этими функциями

Так все таки логика не ясна, как оставить работать покупку?
Ведь получается что в момент покупки работает НЕадмин... и что тогда добавлять в проверку "лентяям"? ;)
 

Sanik

ТОП-МАСТЕР
Регистрация
13.10.2007
Сообщения
9,039
Реакции
1,309
Поинты
222.000
Так все таки логика не ясна, как оставить работать покупку?
Ведь получается что в момент покупки работает НЕадмин... и что тогда добавлять в проверку "лентяям"? ;)

по п.2 - у меня своя платежка, модифицированные
lr_processing и pm_processing

поэтому все платежи идут на другой линк
script.php?всеостальныепараметры - поэтому мне прокатил ленивый вариант в виде решения в 3 строки, и по идее платежка переносится.

по п.1
все легко подсмотреть в admin.php
там банальная работа с куками
'username' и 'password'

все прозрачно

Сегодня я почта
 

onliner-76

ТОП-МАСТЕР
Регистрация
07.06.2010
Сообщения
34,864
Реакции
1,947
Поинты
0.000
Один мой знакомый очень элегантно и без потери в функциональности исправил данную уязвимость. Если кому-то ещё актуально или просто нужна помощь высококлассного программиста, пишите ему в асю - 123530456
Человек надёжный - доверяю как самому себе.

P.S. Надеюсь ТС на меня не обидится :wink2:
 
Сверху Снизу