что такое символы zalgo

ZalgoFuzzing: использование нестандартных методов размытия пейлоадов

что такое символы zalgo. Смотреть фото что такое символы zalgo. Смотреть картинку что такое символы zalgo. Картинка про что такое символы zalgo. Фото что такое символы zalgo

Использование нестандартных техник обфускации пейлоада (полезной нагрузки) при проведении тестирования на проникновение веб-приложений может позволить обходить фильтрацию защитных средств и способствовать реализации вектора атаки. В этой статье я расскажу про т.н. Z̴a҉̠͚l͍̠̫͕̮̟͕g͚o̯̬̣̻F̮̫̣̩͓͟ͅu̯z̡͉͍z̪͈̞̯̳̠ͅi̴̜̹̠̲͇n̰g̱͕̫̹͉͓ как метод обфускации (размытия) пейлоадов.

Z̻̮̰̗͙̱̣a̺̗̺͍̹̕l͈̠͈͍g̵o̤̜͇͕̹

В первую очередь давайте разберем что такое Zalgo и такую особенность построения текста. В тексте используются комбинированные символы, также известные как комбинированные метки. Символы, имеющие графическое представление, в стандарте Юникода подразделяются на базовые и комбинируемые (или модифицирующие). Комбинируемые названы так, потому что при отображении комбинируются с рядом стоящим базовым символом (модифицируют его).

Использование таких последовательностей символов позволяет исказить полезную нагрузку, приведя ее к «нестандартному виду».

Например, данный javascript-код будет валиден в Edge: ̀̀̀̀̀́́́́́̂̂̂̂̂̃̃̃̃̃̄̄̄̄̄̅̅̅̅̅̆̆̆̆̆̇̇̇̇̇̈̈̈̈̈̉̉̉̉̉̊̊̊̊̊ͅͅͅͅͅͅͅͅͅͅͅalert(̋̋̋̋̋̌̌̌̌̌̍̍̍̍̍̎̎̎̎̎̏̏̏̏̏ͅͅͅͅͅ1̐̐̐̐̐̑̑̑̑̑̒̒̒̒̒̓̓̓̓̓̔̔̔̔̔ͅͅͅͅͅ)̡̡̡̡̡̢̢̢̢̢̛̛̛̛̛̖̖̖̖̖̗̗̗̗̗̘̘̘̘̘̙̙̙̙̙̜̜̜̜̜̝̝̝̝̝̞̞̞̞̞̟̟̟̟̟̠̠̠̠̠̣̕̕̕̕̕̚̚̚̚̚ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ

Чтобы cгенерировать Zalgo, можно повторить одиночные символы, либо объединить два символа, и повторить второй. Следующий пример генерирует визуальные дефекты, повторяющиеся сами по себе, в основном объединяют символы unicode:

Cледующий JavaScript будет генерировать визуальные дефекты, используя один из символов выше ͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂͂:

Принцип построения «фаззящей» последовательности проста — вывод символов максимально возможно горизонтальной длины, либо преображение и отображение с «разрывом». Этом поможет достичь эффекта некорректного отображения множественных символов UNICODE как пробельных, например так:

ັັັalert(ັັັ’XSS Edge’ັັັ)ັັັ
Здесь ожидаемое поведение — это фильтрация, но на самом деле происходит событие Alert. Эти ошибки связаны с некорректным парсингом смешанного содержимого запроса.

Есть схожие методы обхода защитных средств, основанные на внедрении UNICODE символов:
†‡•<img src=a onerror=javascript:alert(‘test’)>…‰€ (репорт на HackerOne).

Эти методы могут быть как обособленными векторами применения, так и конкретными, связанными со спецификой того или иного приложения, например AngularJS:

В ветке обсуждения отображения последовательностей представлен еще один пример обхода парсинга:

Основной смысл такого обхода — преобразования символов, проходящих фильтры, в необходимую последовательность, на выходе дающую работающий (уже прошедший фильтр) пейлоад. В качестве примера привожу изображение, демонстрирующее такое преобразование:

что такое символы zalgo. Смотреть фото что такое символы zalgo. Смотреть картинку что такое символы zalgo. Картинка про что такое символы zalgo. Фото что такое символы zalgo

Исследователем Gareth Heyes опубликован фаззер, объединяющий UNICODE совмещение и Zalgo, названный им Z̴a҉̠͚l͍̠̫͕̮̟͕g͚o̯̬̣̻F̮̫̣̩͓͟ͅu̯z̡͉͍z̪͈̞̯̳̠ͅi̴̜̹̠̲͇n̰g̱͕̫̹͉͓ для выявлении последовательностей UNIСODE символов, преобразующихся в валидный javascript.

Таким образом был составлен пейлоад для обхода фильтрации EDGE, заключающийся в добавлении символов, обрабатываемых как пробельные. Таким образом была выявлена последовательность в виде символа 837 вместе с любым символом из диапазона 768-879:

Таким образом получается валидный пейлоад: ̀̀̀̀̀́́́́́̂̂̂̂̂̃̃̃̃̃̄̄̄̄̄̅̅̅̅̅̆̆̆̆̆̇̇̇̇̇̈̈̈̈̈̉̉̉̉̉̊̊̊̊̊ͅͅͅͅͅͅͅͅͅͅͅalert(̋̋̋̋̋̌̌̌̌̌̍̍̍̍̍̎̎̎̎̎̏̏̏̏̏ͅͅͅͅͅ1̐̐̐̐̐̑̑̑̑̑̒̒̒̒̒̓̓̓̓̓̔̔̔̔̔ͅͅͅͅͅ)̡̡̡̡̡̢̢̢̢̢̛̛̛̛̛̖̖̖̖̖̗̗̗̗̗̘̘̘̘̘̙̙̙̙̙̜̜̜̜̜̝̝̝̝̝̞̞̞̞̞̟̟̟̟̟̠̠̠̠̠̣̕̕̕̕̕̚̚̚̚̚ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ

Тема использования UNICODE-нормализации для обхода защитных средств далеко не нова (но и не сильно распространена), но тем не менее, позволяет находить новые способы обхода фильтрации.

Источник

Zalgo

что такое символы zalgo. Смотреть фото что такое символы zalgo. Смотреть картинку что такое символы zalgo. Картинка про что такое символы zalgo. Фото что такое символы zalgo

Не так давно на сайты вебмастеров набежала очередная волна школьников, которая спамила в комментарии мозговыносящий, ломающий верстку, текст. Такой текст еще называют ZALGO. Пришлось мне в оперативном порядке искать лекарство от этой напасти.

Сам по себе ZALGO текст представляет из себя ряд повторяющихся друг за другом надстрочных символов. Такой функционал был добавлен в Unicode для того, чтобы отображать арабские, немецкие(Ü) и китайско-японские алфавиты, поэтому какой-бы то нибыло видимой защиты от данного явления — нет. И единственный способ борьбы со спамерами использующими эту, с позволения сказать, уязвимость — ручная модерация и бан.

К примеру блог zenpr, в одно время, был доверху забит такого рода спамными комментариями.
Потом анонимус решил позверствовать на ТопСапе Чане, что и побудило меня найти лекарство от этой «заразы».
Не хватало еще, чтобы мою борду перекинулась эта эпидемия! Полез в гугл и на Stackoverflow для поиска решения этой роблеммы. И не нашел оного. Точнее было одно решение, которое предполагало чистку всех символов, кроме букв и цифр. Но оно было, мягко говоря не оптимальным и не кошерным. Пришлось изучать матчасть и писать свой костыль.

В результате моих изысков было получено два решения.

Полностью удаляет все надбуквенные метки. То есть буква Ё станет после обработки просто буквой Е. Если вы готовы смириться с этой утратой — используйте эту регулярку.

Второе, более либеральное:

Данный вариант удаляет все буквенные метки выше 1-го уровня вложенности. Проще говоря буева Ё так и останется буквой Ё.

Такой текст — ͐̈ͩ̎Zͮ͌ͦ͆ͦͤÃ̉͛̄ͭ̈̚LͫG̉̋͂̉Oͨ͌̋͗!

Будет преобразован в такой — ZÄLͫGO!

Так-же я зарегистрировался на Stackoverflow и на ломанном энглише запилил туда результаты своих изысканий — мой ответ самому себе на Stackoverflow
Надеюсь, что это будет полезно, ведь даже крупные проекты вроде хабра и лайфжурнала не защищены от такого рода «атак».

Источник

что такое символы zalgo. Смотреть фото что такое символы zalgo. Смотреть картинку что такое символы zalgo. Картинка про что такое символы zalgo. Фото что такое символы zalgo

В Юникоде основным блоком сочетания диакритических знаков для европейских языков и международного фонетического алфавита является U + 0300 – U + 036F. Комбинированные диакритические знаки также присутствуют во многих других блоках символов Unicode. В Юникоде диакритические знаки всегда добавляются после главного символа (в отличие от некоторых старых наборов комбинированных символов, таких как ANSEL ), и к одному и тому же символу можно добавить несколько диакритических знаков, в том числе сложенные диакритические знаки сверху и снизу, хотя некоторые системы могут этого не делать. сделать их хорошо.

СОДЕРЖАНИЕ

Диапазоны Unicode

Следующие блоки предназначены специально для комбинирования символов:

Таблица
кодов официального консорциума Unicode по объединению диакритических знаков (PDF)
0123456789АBCDEF
U + 030x◌̀◌́◌̂◌̃◌̄◌̅◌̆◌̇◌̈◌̉◌̊◌̋◌̌◌̍◌̎◌̏
U + 031x◌̐◌̑◌̒◌̓◌̔◌̕◌̖◌̗◌̘◌̙◌̚◌̛◌̜◌̝◌̞◌̟
U + 032x◌̠◌̡◌̢◌̣◌̤◌̥◌̦◌̧◌̨◌̩◌̪◌̫◌̬◌̭◌̮◌̯
U + 033x◌̰◌̱◌̲◌̳◌̴◌̵◌̶◌̷◌̸◌̹◌̺◌̻◌̼◌̽◌̾◌̿
U + 034x◌̀◌́◌͂◌̓◌̈́◌ͅ◌͆◌͇◌͈◌͉◌͊◌͋◌͌◌͍◌͎ CGJ
U + 035x◌͐◌͑◌͒◌͓◌͔◌͕◌͖◌͗◌͘◌͙◌͚◌͛◌͜◌͝◌͞◌͟
U + 036x◌͠◌͡◌͢◌ͣ◌ͤ◌ͥ◌ͦ◌ͧ◌ͨ◌ͩ◌ͪ◌ͫ◌ͬ◌ͭ◌ͮ◌ͯ
Заметки 1. ^ Начиная с версии Unicode 13.0

Кодовые точки U + 032A и U + 0346–034A являются символами IPA :

Кодовые точки U + 034B – 034E являются диакритическими знаками IPA для расстройства речи :

U + 034F является « объединяющим графемным соединителем » (CGJ) и не имеет видимого глифа.

Комбинированная
таблица кодов расширенного официального консорциума Unicode с диакритическими знаками (PDF)
0123456789АBCDEF
U + 1ABx◌᪰◌᪱◌᪲◌᪳◌᪴◌᪵◌᪶◌᪷◌᪸◌᪹◌᪺◌᪻◌᪼◌᪽◌᪾◌ᪿ
U + 1ACx◌ᫀ
U + 1ADx
U + 1AEx
U + 1AFx
Заметки 1. ^ Начиная с версии Unicode 13.0 2. ^ Серые области обозначают неназначенные кодовые точки.
Таблица
кодов официального консорциума Unicode Дополнение по комбинированным диакритическим знакам (PDF)
0123456789АBCDEF
U + 1DCx◌᷀◌᷁◌᷂◌᷃◌᷄◌᷅◌᷆◌᷇◌᷈◌᷉◌᷊◌᷋◌᷌◌᷍◌᷎◌᷏
U + 1DDx◌᷐◌᷑◌᷒◌ᷓ◌ᷔ◌ᷕ◌ᷖ◌ᷗ◌ᷘ◌ᷙ◌ᷚ◌ᷛ◌ᷜ◌ᷝ◌ᷞ◌ᷟ
U + 1DEx◌ᷠ◌ᷡ◌ᷢ◌ᷣ◌ᷤ◌ᷥ◌ᷦ◌ᷧ◌ᷨ◌ᷩ◌ᷪ◌ᷫ◌ᷬ◌ᷭ◌ᷮ◌ᷯ
U + 1DFx◌ᷰ◌ᷱ◌ᷲ◌ᷳ◌ᷴ◌᷵◌᷶◌᷷◌᷸◌᷹◌᷻◌᷼◌᷽◌᷾◌᷿
Заметки 1. ^ Начиная с версии Unicode 13.0 2. ^ Серая область указывает неназначенную кодовую точку.
Объединение диакритических знаков для символов
Официальная таблица кодов Консорциума Unicode (PDF)
0123456789АBCDEF
U + 20Dx◌⃐◌⃑◌⃒◌⃓◌⃔◌⃕◌⃖◌⃗◌⃘◌⃙◌⃚◌⃛◌⃜◌⃝◌⃞◌⃟
U + 20Ex◌⃠◌⃡◌⃢◌⃣◌⃤◌⃥◌⃦◌⃧◌⃨◌⃩◌⃪◌⃫◌⃬◌⃭◌⃮◌⃯
U + 20Fx◌⃰
Заметки 1. ^ Начиная с версии Unicode 13.0 2. ^ Серые области обозначают неназначенные кодовые точки.
Таблица
кодов официального консорциума Unicode Combining Half Marks (PDF)
0123456789АBCDEF
U + FE2x◌︠◌︡◌︢◌︣◌︤◌︥◌︦◌︧◌︨◌︩◌︪◌︫◌︬◌︭◌︮◌︯
Заметки 1. ^ Начиная с версии Unicode 13.0

OpenType

OpenType имеет ccmp «тег функции» для определения глифов, которые представляют собой композиции или декомпозиции, включающие комбинирование символов, тег mark для определения положения комбинируемых символов на базовом глифе и mkmk для позиционирования комбинируемых символов друг на друга.

Zalgo текст

что такое символы zalgo. Смотреть фото что такое символы zalgo. Смотреть картинку что такое символы zalgo. Картинка про что такое символы zalgo. Фото что такое символы zalgo

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *