Показать сообщение отдельно
  #40 (permalink)  
Старый 10.11.2010, 12:07
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

0 — число. При взятии у него свойства оно преобразовавыется в объект. У объекта есть функция-конструктор. У конструктора есть свой конструктор — Function.

Получаем
(
	Function(
		(Function ('return unescape'))()('al%65rt%28%22Hello%20World%21%22%29')
	)
)();


Уже ближе.
(Function ('return unescape'))() создает функцию и сразу же её выполняет. Результатом будет функция unescape, определенная в глобальном скопе.

(
	Function(
		unescape('al%65rt%28%22Hello%20World%21%22%29')
	)
)();


ну, и

(Function('alert("Hello World!")'))();


Т.е., опять-таки, функция объявляется и сразу запускается.

alert("Hello World!")
Ответить с цитированием