Какие-то двойные стандарты в безопасности кругом. Вот нашли уязвимость в Rambler. Как говорят, автор написал на Хабр, где статью бысто потерли, а его - забанили. Форменная глупость.
Я не знаю. Думаю, они хотели отдавать разный html и/или css разным браузерам. Но как они добились того, что скрипт иногда не выполняется, навскидку не догадался. Думаю, они средствами фронтенда разбирали User-Agent, а вот что дальше происходило...
Я еще помню, как в 97 году была обнаружена уязвимость в IIS - тому можно было после имени файла через какой-то специальный синтаксис указать имя NTFS-ного потока этого файла, который надо выдать. Но разработчики уже давно на тот момент забыли, что в NTFS в файлах поддерживаются какие-то потоки. Поэтому получилось так, что если указать имя скрипта - скрипт выполнялся, а если имя потока из файла скрипта (каковой там всегда бывал ровно один, и имя, которое ему NTFS по умолчанию присвоила было известно), выдавался этот поток, то есть содержимое файла, то есть текст скрипта.
Но там хоть механизм был понятен.
А здесь, разве что в скрипте явным образом написано:
if (!defined($cg->user_agent)) {
open SRC,"<"$0;
while (<SRC>) {
print;
}
close SRC;
exit 0;
}
К сожалению по ссылке не приведен полный текст выкачанного скрипта, а самому проверять, не заткнули ли дыру, лень.
Это было связано с потоками в NTFS. Поток $DATA - это содержимое файла, а IIS проверял, интерпретировать файл, или нет, по расширению. только символ двоеточия не обрабатывал.
February 24 2010, 10:01:03 UTC 2 years ago
КАК они добились такого эффекта??
February 24 2010, 10:15:15 UTC 2 years ago
February 24 2010, 11:41:06 UTC 2 years ago
February 24 2010, 13:19:09 UTC 2 years ago
February 24 2010, 20:51:07 UTC 2 years ago
February 24 2010, 17:28:22 UTC 2 years ago
или просто разные пути к скриптам.
February 24 2010, 11:02:12 UTC 2 years ago
Но там хоть механизм был понятен.
А здесь, разве что в скрипте явным образом написано:
if (!defined($cg->user_agent)) { open SRC,"<"$0; while (<SRC>) { print; } close SRC; exit 0; }К сожалению по ссылке не приведен полный текст выкачанного скрипта, а самому проверять, не заткнули ли дыру, лень.
February 24 2010, 11:14:59 UTC 2 years ago
February 24 2010, 11:43:31 UTC 2 years ago
Это было связано с потоками в NTFS. Поток $DATA - это содержимое файла, а IIS проверял, интерпретировать файл, или нет, по расширению. только символ двоеточия не обрабатывал.
February 24 2010, 11:05:26 UTC 2 years ago
February 24 2010, 11:29:52 UTC 2 years ago
February 24 2010, 22:36:00 UTC 2 years ago
Идиоты...