Xakep #305. Многошаговые SQL-инъекции
Компания Check Point Software Technologies использовала найденный баг в языке программирования Perl, чтобы взломать популярный баг-трекер Bugzilla и добавить туда четырёх новых администраторов. С полными правами в системе, они смогли увидеть список уязвимостей, которые ещё не опубликованы в открытом доступе.
Вчера хакеры рассказали о новом классе уязвимостей в Perl (по крайней мере, авторы считают его новым). Сайт Bugzilla они взяли для демонстрации. Такие же проблемы существуют на других ресурсах. Более того, программное обеспечение Bugzilla используется более чем в 150 баг-трекерах различных крупных проектов: это OpenOffice, Red Hat, ядро Linux и многие другие.
Уязвимый код
my $otheruser = Bugzilla::User->create({
login_name => $login_name,
realname => $cgi->param('realname'),
cryptpassword => $password});
Код создаёт нового пользователя в базе данных при новой регистрации. Баг в Perl позволяет использовать специально сконструированный запрос, который эксплуатирует этот код для создания админского аккаунта.
Запрос
index.cgi?realname=JRandomUser&realname=login_name&realname=admin@mozilla.com
Mozilla уже выпустила обновление 4.0.14, которое исправляет баг. То же самое должны использовать все веб-разработчики, которые пишут на Perl.