Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Perl write-only vs. JS write-only

Perl, говорите? Хехе. Этот небольшой JavaScript выполняет alert(1):

(É=[Å=[],µ=!Å+Å][µ[È=-~-~++Å]+({}+Å) [Ç=!!Å+µ,ª=Ç[Å]+Ç[+!Å],Å]+ª])() [µ[Å]+µ[Å+Å]+Ç[È]+ª](Å)

Можете попробовать в браузере.

Автор — Йосуке Хасегава Э. Вела.

27 комментариев
wiktar (wiktar.com) 2010

Я перестал _пробовать_ такое со времён perl-скрипта, выполняющего rm -rf / :)

aktuba (aktuba.ya.ru) 2010

А как это перевести в нормальный вид? o_O

Рамиль_К (ramil1017.ya.ru) 2010

Комментарий для aktuba.ya.ru:

Там же сказано, алерт 1:)

А я запустить решился. Не даром же порнорежим в браузере придумали:)

vkv.livejournal.com 2010

Комментарий для aktuba.ya.ru:

Элементарно, мю = «false», а е = 3, дальше понятно.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для aktuba.ya.ru:

А как это перевести в нормальный вид? o_O

А это и есть нормальный вид :) Просто для имён переменных используются Unicode-имена. Например:

É=[Å=[],µ=!Å+Å]

a = [b = [], c = !b + b]

ну и так далее.

danilissimus.ya.ru 2010

eval((![]+{})[a=1]+(![]+{})[++a]+(![]+{})[a<<1]+(!!a+{})[((a)>>1)]+(!!a+{})[a>>1-a]+«(1)»);
http://dpaste.org/AUtD/

Denis Ibaev (dionys.myopenid.com) 2010

Есть и такое: http://discogscounter.getfreehosting.co.uk/js-noalnum.php

([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()[(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]])(+!+[])

Евгений Степанищев (bolknote.ru) 2010

Комментарий для danilissimus.ya.ru:

eval — это уже не интересно :)

Евгений Степанищев (bolknote.ru) 2010

Комментарий для dionys.myopenid.com:

На отличненько :)

id.rambler.ru/users/boltai-shaltai/ 2010

«попробовать в браузере»
не, в IE эта хрень не сработает. На хабре тоже никто не подметил. Не пользуются, видимо.

не жрёт он такое ’false’[1] -> ’a’

Fulcrum (fulc.ru) 2010

А alert они как вызвали?

id.rambler.ru/users/boltai-shaltai/ 2010

Комментарий для fulc.ru:

window[’alert’](1)

window получили по ссылке, а ’alert’ склеили как строку
на хабре разобрано, если что

Евгений Степанищев (bolknote.ru) 2010

Комментарий для id.rambler.ru/users/boltai-shaltai/:

На хабре тоже никто не подметил

А на Хабре где про это было.

olo-olo-lo (olo-olo-lo.ya.ru) 2010

Всегда ссылайтесь первоисточник, а не на сплетни. Первоисточник здесь:
http://sla.ckers.org/forum/read.php?24%2C28687
Таким образом, автор указанной формы кода — Э.Вела, Й.Хасегава — автор первоначальной идеи.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для olo-olo-lo.ya.ru:

Надо же, спасибо! «Сплетни» были почерпнуты из какой-то буржуйской презентации.

id.rambler.ru/users/boltai-shaltai/ 2010

Комментарий для Евгения Степанищева:

http://habrahabr.ru/blogs/crazydev/94797/

отсюда, видно, и потырили

Евгений Степанищев (bolknote.ru) 2010

Комментарий для id.rambler.ru/users/boltai-shaltai/:

«Потырили» мы из какой-то забугорной хакерской презентации про XSS. Там это упоминается в свете обхода XSS-фильтров.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для id.rambler.ru/users/boltai-shaltai/:

отсюда, видно, и потырили

Или имеется ввиду наоборот? Вероятно с меня и потырили, да. Заголовки совпадают один-в-один.

olo-olo-lo (olo-olo-lo.ya.ru) 2010

Комментарий для Евгения Степанищева:

Да-да. В чем понт приводить промежуточную версию кода, Я не понимаю. Ну, да ладно.
В этом разделе все смогут почерпнуть для себя много новой информации о том, кто является автором чего.
http://sla.ckers.org/forum/list.php?24
Также всем полезно будет открыть для себя этот факт, ибо Я видел где-то дезинформацию по этому поводу.
http://sla.ckers.org/forum/read.php?2%2C15812%2C26331#msg-26331
======
Ты потырил отсюда http://p42.us/favxss/fav.ppt (2009 г.) . Там не вполне понятная формулировка для людей вне темы.
======
На мой взгляд, зря перечеркнул Хасегаву. Как-то некорректно выглядит, идея тоже дорогого стоит.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для olo-olo-lo.ya.ru:

Ты потырил отсюда http://p42.us/favxss/fav.ppt (2009 г.)

Да, так и есть.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для olo-olo-lo.ya.ru:

Также всем полезно будет открыть для себя этот факт, ибо Я видел где-то дезинформацию > по этому поводу.
http://sla.ckers.org/forum/rea%E2%80%A626331#msg-26331

См. http://bolknote.ru/all/2373

olo-olo-lo (olo-olo-lo.ya.ru) 2010

Комментарий для Евгения Степанищева:

Ага, в бложике Aleko неправильные копирайты (и никто не в курсе).
И в догонку: http://sla.ckers.org/forum/read.php?24%2C31765%2C33730#msg-33730
Обращаю внимание, что значимость имеют только те способы, результаты которых нельзя изменить предшествующим кодом.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для olo-olo-lo.ya.ru:

А какой копирайт правильный? И почему Aleko не мог найти этот способ самостоятельно?

olo-olo-lo (olo-olo-lo.ya.ru) 2010

Комментарий для Евгения Степанищева:

Ладно, постараюсь попроще.

  1. Если пройти по второй ссылке из моего второго поста на этой станице, можно увидеть пост oxotnick’a, в котором приведен код, который Aleko приписал Хейсу (чего он сам, к его чести, никогда не делал). В первый раз, когда Я, читая твой блог, наткнулся на блог Aleko, меня эта досадная неточность возмутила до глубины души. Но Я не стал тогда что-то предпринимать в надежде на то, что найдется ещё хотя бы один человек из наших, который откроет глаза Aleko. Как видно сейчас из комментариев к тому посту, не нашелся.
  2. Aleko нашел свой способ самостоятельно. Как ты понял из п.1, Я не об этом. Весьма позитивным моментом также является комментарий к его посту о том, что найденный им способ большой практической значимости не имеет, поскольку может быть «убит» предшествующим кодом (см. комментарии 17-19).
    Надеюсь, теперь все понятно.
Евгений Степанищев (bolknote.ru) 2010

Комментарий для olo-olo-lo.ya.ru:

«Попроще». Можно было с самого начала это написать :) Это было бы не попроще, а по существу. Кстати, почему «Я» большое?

CTAPbIu_MABP (ctapbiu.mabp.myopenid.com) 2010

Комментарий для dionys.myopenid.com:

подскажите, если знаете, кто автор js-noalnum.php
у него там ошибка в обработках строк с точками

Евгений Степанищев (bolknote.ru) 2010

Комментарий для ctapbiu.mabp.myopenid.com:

Никаких идей о чём вы спрашиваете у меня нет.