Можно ли использовать скрипт до загрузки DOM

[Удален]
710

Добрый день, господа.

Столкнулся с проблемой плохой фильтрации в движке (доступа к коду нет, а в шаблонах закрыт php), что приводит к появлению XSS-уязвимости. В частности, движок при преобразовании BB-кодов пропускает в аттрибут src ссылку НЕ на изображение, которая успешно грузится даже в современных браузерах.

http://ЗлаяХреньm g]

в

<img src="http://ЗлаяХрень" />

Пытался повесить обработчик через jquery'евское ready (найти пикчу с src, содержащим злую хрень и изменить), скрипт меняет SRC (положим, var $evil_shit определена заранее), но это дело грузится ПОСЛЕ загрузки DOM, когда браузер уже прочитал плохую ссылку.

Отсюда вопрос. Возможно ли решить вопрос силами верстальщика?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

Ну к разработчикам движка уже обращались и они что сказали?

А так не помочь тут JS

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
siv1987
На сайте с 02.04.2009
Offline
427
#2
NerZool:
движок при преобразовании BB-кодов пропускает в аттрибут src ссылку НЕ на изображение, которая успешно грузится даже в современных браузерах.

Любой адекватный движок пропустит ссылку не "на изображение". Главное что-бы это была ссылка. А ссылки на изображения разные бывают. В чем тут xss? Или, если будет окончание .jpg от этого что-нибудь изменится?

[Удален]
#3

Мда... В печальную ситуацию я попал.

Любой адекватный движок пропустит ссылку не на изображение. Главное что-бы это была ссылка. А ссылки на изображения разные бывают. В чем тут xss? Или, если будет окончание .jpg от этого что-нибудь изменится?

XSS в том, что пропустило ссылку на "не изображение". Я понимаю, что картинки могут разные ссылки иметь, но в моих наивных мечтах браузеры хотя бы проверяют хедер того, что потом откроется по ссылке, на нужный файлтайп (уж коли они все равно его грузят полностью). Хотя, наверное, и это можно подменить.

Ну к разработчикам движка уже обращались и они что сказали?

Боюсь, они ответят на мое письмо не раньше, чем дедушка Мороз, которому я писал еще в дошкольном возрасте.

[OFFTOP]В большинстве компаний (начиная моим интернет-провайдером или моим банком, и заканчивая разработчиками этого самого движка) та часть саппорта, которая должна была бы отвечать на действительно сложные вопросы, обычно бухает вместе с лепреконами и единорогами где-то в Неверленде. Им всегда было не до моих писем.

Уж коли довелось жить в такой стране, то покупай кожаную куртку без одного рукава, заводи верную собаку, и разруливай все проблемы либо самостоятельно... либо с другими выжившими... [говорит голосом "переводчика из 90-х"] В этой стране, парень, я не могу рассчитывать ни на правительство, ни на военных, ни, тем более, на помощь этих говнюков из корпораций.[/OFFTOP]

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4

У вас только 1 путь, это загружать картинки себе на сервак. В других случаях, даже этот форум пропускает всё :)

C
На сайте с 04.02.2005
Offline
291
#5

index.php

<?php

ob_start();
include 'index_old.php';
$content = ob_get_contents() ;
//ищем все img src без расширений (jpg, jpeg etc)
echo $content;

ps Как быть с такого вида ссылками /index.php?action=dlattach;attach=7109;image?

TF-Studio
На сайте с 17.08.2010
Offline
334
#6

http://rutracker.org/forum/viewtopic.php?t=469753

http://rutracker.org/forum/viewtopic.php?t=4220699

http://rutracker.org/forum/viewtopic.php?t=4228361

Вот можно почитать для ознакомления.

Единственный вариант - лить картинки себе, как делают это большинство крупных сайтов..

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
[Удален]
#7
Chukcha:
index.php
<?php
ob_start();
include 'index_old.php';
$content = ob_get_contents() ;
//ищем все img src без расширений (jpg, jpeg etc)
echo $content;


ps Как быть с такого вида ссылками /index.php?action=dlattach;attach=7109;image?

Помимо whitelist'a неплохо было бы сделать проверку наличия перед расширением точки и отсутствие внутри get-параметров. А то ведь "http://evil_site/evil_shit.js?var=.jpg" прекрасно исполняет содержимое http://evil_site/evil_shit.

Да и вообще, можно похабрить и найти ссылки на отличные классы защиты, хотя и там, судя по комментам, ничего совершенного нет, и действительно в конечном счете можно только лить картинки на себя. А в моем случае — действовать по примеру рутракера, т.е. банить всех, кто будет замечен за распространением заразы, а в паблике стараться своевременно чистить заразу руками.

siv1987
На сайте с 02.04.2009
Offline
427
#8
NerZool:
Помимо whitelist'a неплохо было бы сделать проверку наличия перед расширением точки и отсутствие внутри get-параметров. А то ведь "http://evil_site/evil_shit.js?var=.jpg" прекрасно исполняет содержимое http://evil_site/evil_shit.

NerZool, а что значит исполняет содержимое? Кто исполняет и что исполняет?

NerZool:
Да и вообще, можно похабрить и найти ссылки на отличные классы защиты

Нормальная защита - загружать картинки к себе на сервер или разрешить только с доверенных хостов.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий