Как JS может выполнять код?
Простите может я какой-то серый, но я вот никак не могу понять каким образом JavaScript может качать или выполнять какой-то код?
Это ж JavaScript...
Им только стили меняют и всякие штучки выводят...
В нём нет операций с файлами и прочих радостей жизни...
Я вроде слышал как-то через Shell JS может выполнять виндовые функции...
Так ли это?
код выполнять может, но смотря какой. естественно, ЕХЕ файлы джаваскрипт не понимает. Но на винде их запускать можно. Из-под Internet Explorer.
код выполнять может, но смотря какой. естественно, ЕХЕ файлы джаваскрипт не понимает. Но на винде их запускать можно. Из-под Internet Explorer.
А каким образом можно сманипулировать HTML'ем, чтобы запустить на выполнение какой-то произвольный код?
Ну как бы да...
JS же только на серваке выполняется:)
JS же только на серваке выполняется:)
Да вы чего :eek: Наоборот, JavaScript - строго клиентский язык, раюотает в браузерной песочнице, так что "произвольный код" вы выполнить там не сможете, он защищён от подобных поползновений.
Ну а как же тогда кишащие по всему инету рои троянов, червей и прочих вирусяк?
Как они выполняются?
Кстати есть серверный JS, но это другое совсем...
Как-то я вроде слышал JS через браузер может вызывать Shell API или через VB Script...
Но вот как? Не пойму...
Или вы все-таки Ajax имеете ввиду? Но он никакой не серверный. Он просто запросы шлет на сервер и полчает ответ не перезагружая страницу..
Они эксплуатирую уязвимости браузеров. Т.е. они выполняют такой код, который приводит к побочным эффектам - позволяет зловреду вырваться из песочницы браузера. Как правило самым "слабым звеном" является не само исполняющее ядро JavaScript, но сторонние аддоны, например Adobe Flash, в этом случае атака выглядит как подгрузка специально сформированного флешового объекта, выполнение которого приводит к заражению целевой машины (получение доступа к диску или оперативной памяти, а уже потом на комп кладется порноблокер или что похуже).
Это когда на "всеми любимом" JavaScript выполняется рендеринг страницы на сервере. Частным случаем можно считать JScript.NET, который будучи диалектом JavaScript, может использоваться в ASP.NET.
Или вы все-таки Ajax имеете ввиду? Но он никакой не серверный. Он просто запросы шлет на сервер и полчает ответ не перезагружая страницу..
Вот он есть:
http://yandex.ua/yandsearch?rdrnd=259764&text=%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D0%B9%20javascript&lr=145
Но я не про то...
Я про то море в инете сайтов, которые каким-то образом заражают компы троянами, это ни для кого не секрет, но вот интересно каким образом это происходит...
Я вроде слышал как-то через Shell JS может выполнять виндовые функции...
Так ли это?
Windows Scripting Host (WSH) позволяет исполнять JScript (диалект JavaScript) сценарии - но это исключительно инструмент для администрирования системы. Сейчас он считается устаревшим и для автоматизации рекомендуется использовать PowerShell 1.0 / 2.0.
Это как получается переполнение стэка что ли?
Типа как рекурсией?
Или в браузерах есть какие-то дыры, которые при последовательности символов какой-то, приводят к исключениям или чему-то такому?
Типа как рекурсией?
Классическая атака на стек [COLOR=Silver](слово "стек" пишется через букву Е)[/COLOR] производится не рекурсией, там совсем иные методики, в коих я дилетант полный, - как минимум перезаписывается адрес возврата.
Атакуется либо совершенно конкретный формат - как это было с GIF, либо атакуется конкретный АПИ - как это, возможно, происходит с Flash-ом. Я не знаю как, но дыры в нем находят чуть ли не каждый день, как ими пользоваться также не интересуюсь - мне важнее обновить побыстрее этот сбоючий компонент.
Атакуется либо совершенно конкретный формат - как это было с GIF, либо атакуется конкретный АПИ - как это, возможно, происходит с Flash-ом. Я не знаю как, но дыры в нем находят чуть ли не каждый день, как ими пользоваться также не интересуюсь - мне важнее обновить побыстрее этот сбоючий компонент.
Слово stack читается именно как стЭк...
http://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BA_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%BE%D0%B2
по теме... один хакер искал дырки в .pdf простым перебором наборов битов в файле... причём довольно успешно(нашёл кучу дырок)... этим он вроде выйграл какой то приз на последнем оф. соревновании хакеров...
а вообще, думаю эта статья вам будет интересна
по теме... один хакер искал дырки в .pdf простым перебором наборов битов в файле... причём довольно успешно(нашёл кучу дырок)... этим он вроде выйграл какой то приз на последнем оф. соревновании хакеров...
а вообще, думаю эта статья вам будет интересна
Правил русского языка описывающих чтение слова stack как стек нету...
А вот английская буква 'a' всегда читается как 'э' ну в некоторых случаях как 'а', ну никак не как 'е'...
А как примерно она называлась?
А вот английская буква 'a' всегда читается как 'э' ну в некоторых случаях как 'а', ну никак не как 'е'...
Тоисть в руском изыке слава как слышыца так пишуца? :D
Шшш... не разрушай мечку человека об упорядоченном, он только-только пришёл в наш мир :rolleyes:
Ну поучи инглиш чуток, тогда станет понятней ;)
[QUOTE=lingvo && google.translate && ...]
stack - [стэ́к] - стек[/QUOTE]
да, читаем мы именно "стэк", но в русском языке принято писать "стек"
да, читаем мы именно "стэк", но в русском языке принято писать "стек"
Принято, но правил нету...
Как хочешь так и пиши...
Пора использовать в русском языке русские слова, а не всякие англицизмы...
А вообще я про JS спрашивал, а не правила написания иностранных слов в русском языке...
Я никому ничего не доказывал, а отвечал на флэймы и оффтопы тупые...
А та статья как и почти все статьи в инете не раскрывает сути проникновения и скачивания джаваскриптом из инета вредоносного ПО...
Вам следует внимательнее подбирать ссылки, которые вы даёте...
Уж я потратил не 10 минут, а гораздо больше в поисках этой инфы...
Но это как бы инфа из "прайвэта"...
Ну да ладно...
Закрываем тему короче...
Придумайте замену для слова пинг - "проверка времени отзыва компьютера по сети" что ли? Нет уже. Длинно.
И вообще вы бы лучше думали не о том что язык не правильный, а об улучшении чего-то более материального. Желально - российского.
З.Ы. когда придумает удобную замену пингу - продолжим разговор про "стэк"/"стёк"/"стек", а то начнём обзывать стёк "зарегистрированной областью памяти"
По сабжу : JS заставляет уязвимость с системе выполнить код. Например может быть и переполнение "зарегистрированной области памяти"
З.Ы. Самая универсальная уязимость (может выполнить любой код) это прокладка между креслом и клавиатурой
Вам следует внимательнее подбирать ссылки, которые вы даёте...
хм, можно внимательно почитать внимательно подобранную статью и немного вдуматься...
[quote=суть проникновения]
добывается пароль от фтп сервера и адрес сайта любым способом, далее заходят на фтп, в код страницы дописывают скрытый iframe, содержащий прямую ссылку на исполняемый файл вируса
[/quote]
javascript ничего не скачивает, а всего лишь "направляет" на исполняемый файл вируса.
Ну так прочти и вдумайся... Я для себя там ничё нового не нашёл...
И как же она направляет?
Тупым top.location.href?
А потом юзер сам качает и запускает вирус?
Ну это как бы не хак...
А потом юзер сам качает и запускает вирус?
Ну это как бы не хак...
Вообще-то это самый действенный способ запуска вредоносного кода.
Ну эт еси за компом сидит мазохист...
Ну или блондинко....
Можно ещё исхитриться как с сайтами-"антивирусами" (помните надеюсь такие, не те что visrustotal.com а что под оболочку винды косили)
P.S. Как говорил (вроде Митник) на данный момент самый уязвимый компонент компьютера - пользователь. Что впрочем не запрещает, если найдётся уязвимость позволяющая выполнить код без юзера - облегчить его работу
JS -> Функция браузера(или плагина)
Допустим функция фиксированно принимает 4 Кг данных и в ней не предусмотрели проверки.
Тогда если мы кинем 5Кб, среди которых 4-данных, 1-вредоносный код, то получим картину (в браузере или программе)
[функция] | данные | код функции | [/функция] - в нормальном фварианте
[функция] | данные | 1-Кг вреоносного кода + остаток функции | [/функция] - в варианте если хак удался
Соотвестственно по окончании приёма дынных от JS выполнится вредоносный код
А вот английская буква 'a' всегда читается как 'э' ну в некоторых случаях как 'а', ну никак не как 'е'...
"jam" пишется как "джем"; "dandy" пишется как "денди" (согласно "старому" Розенталю и моему англо-русскому словарю). "stack" пишется как стек (и "a" соответствует та же фонема, что и в первых двух случаях) согласно Русскому орфографическому словарю Лопатина, а также в соответствии как минимум с тремя русскими изданиями книг зарубежных авторов у меня в наличии (проверил по предметному указателю). Безусловно, можно найти кучу примеров употребления именно "стэк", но я верю, что их меньше и уровень перевода/текста там, вероятно, абы какой. ^)
Интересная ссыль...
Я так понял, что дыры ищутся в тэге object?
JS фигачит на страницу всякими закодированными изощрёнными способами iframe с размерами 1*1, а в src у него идёт ссылка на страницу кулхацкеров, где вставлен iframe, который при там "умении" так сказать может встроить в себя, ну или мог, хотя наверняка до сих пор дыры есть, шо можно встроить даже exe'шник...
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("c:\\somestuff.txt", true);
tf.WriteLine("Some shit...") ;
Да так можно и файл в автозагрузке создать и через AJAX туда качнуть и зафигачить хоть учe-шник...
Тока канешна надо сначала разрешить все ActiveX...
И работает токмо в ишачке...