• XSS.stack #1 – первый литературный журнал от юзеров форума

Уязвимости в Datalife Engine

На офф сайте описали ещё одну уязвимость... но для нуллеров она не видима... кто может помочь с этим ? :)
[mod][not null:] это не дырка движка. Это особенность программного обеспечения (а именно браузера). Ты бы хоть в сути разобрался (специально линк на статью там оставлен ;) )[/mod]
 
спасибо класному челу Fresh за то что выложил :)


Самодостаточные XSS АТАКИ.

Исправление ручное, а то там файлик кривой.

-------------------
находим:
-------------------

if ( ((strpos(strtolower($attrSubSet[1]), 'expression') !== false) && (strtolower($attrSubSet[0]) == 'style')) ||
(strpos(strtolower($attrSubSet[1]), 'javascript:') !== false) ||
(strpos(strtolower($attrSubSet[1]), 'behaviour:') !== false) ||
(strpos(strtolower($attrSubSet[1]), 'vbscript:') !== false) ||
(strpos(strtolower($attrSubSet[1]), 'mocha:') !== false) ||
(strpos(strtolower($attrSubSet[1]), 'livescript:') !== false)
) continue;

-------------------
Заменяем на:
-------------------

if (((strpos(strtolower($attrSubSet[1]), 'expression') !== false) &&
(strtolower($attrSubSet[0]) == 'style')) ||
(strpos(strtolower($attrSubSet[1]), 'javascript:') !== false) ||
(strpos(strtolower($attrSubSet[1]), 'behaviour:') !== false) ||
(strpos(strtolower($attrSubSet[1]), 'vbscript:') !== false) ||
(strpos(strtolower($attrSubSet[1]), 'mocha:') !== false) ||
(strpos(strtolower($attrSubSet[1]), 'data:') !== false AND
strtolower($attrSubSet[0]) == "href") ||
(strpos(strtolower($attrSubSet[1]), 'livescript:') !== false))
continue;

-------------------
Далее находим:
-------------------
$url['show'] = preg_replace( "/javascript:/i", "javascript: ", $url['show'] );
-------------------
Добавить после
-------------------
$url['html'] = preg_replace( "/data:/i", "", $url['html'] );

-------------------
Готово
-------------------


Фикс невидмого символа: Так называемый мягких перенос. Начали флудить пустыми сообщениями, и обходить фильтры.

Фикс:
-------------------
находим:
-------------------

$source = preg_replace($find,$replace,$source);



-------------------
Перерд этим добавляем:
-------------------

$source = str_replace("\xAD","",$source);

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

p.s.: Файл /engine/inc/parse.class.php
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх