Что такое символы zalgo
Zalgo
Это — хорошая статья Анти-Скримеры вики. Она неоднократно проверялась опытными участниками вики, следовательно, она подробно и хорошо рассказывает об описанном предмете.
Статья Zalgo рекомендуется к защите от редактирования.
Относительно безопасный пример Zalgo-картинки
Zalgo — крипи-мем, берущий начало из 2009 года, популярный как в американском интернете, так и в рунете. Олицетворяет порчу, духовное и телесное гниение, хаос, тлен, безысходность.
Суть явления
Под данное явление попадает порча текста и картинок.
Дабы показать подобный текст, возьмём цитату из статьи про SCP-450:
SCP-450 (полн. Заброшенная Федеральная Тюрьма) — один из наиболее распространённых скримеров. Имеет много названий: «Самый страшный скример», «25 кадр», «не страшилка в конце идёт милый котик» и т. д. Одно из самых страшных видео-скримеров. Создан пользователем Youtube Andreyj857 (сейчас он переименовал канал на nu11). Оригинальное видео было опубликовано 4 декабря 2010 и по состоянию на ноябрь 2014 года набрало более 140 тысяч просмотров.
Ŝ̶̡̩̩̪̹͌̌̌̊C̵̡͊͝Ṕ̸̛̛͉̯̰̖̰̌͛-̴̫̤̙̹̄̾̆̈́͝4̵̦͔̓5̷̩̺̆̃͐0̸͈̼̝̆͐́͝ ̶̢̛̰̲̈(̶̞̣̜̍͐̃̌̚п̶̧̛̗͓͉͑̄о̴̡̨͚͗л̷̡̛̞̺͚͛͒͗͝н̵͕̙͌̈́̏.̷̖̯͈̲̠̉ ̴̟͕̻͋̾͆З̷̞͚̮͇̱͂̒̿а̴̮͙̬͙̅̌б̴͇̞̱̐̊̃̈́р̴͈̩̈́͌̔̀͘о̷̝̲̦̹͊̚͠ш̷̨̩̰̙̥͋̋е̸̛͖̠͙͗̈́̓͠н̸̢͖̳̟͐͒̈́̈́н̴̭͗̓̈́̅͝а̷͉̤͊я̴̤͂̋̐̌ ̸̙͕͒̕ж̵̢̏ͅи̷̧̜̳̋̈́̓̉̀з̷̳̌͋̾̕н̸̢̗̟͊̄͜͠ь̵͓͉̠̭̂͂)̴̛̫͋ ̸̧̧͇̞͎̀͝—̷͈̉͂̔ͅ ̵̣̝̗̏̌̍о̴̮̽͋́͆̾ͅд̴̧̩̭͓̇̍и̸̮͇̣̍̿̑͝н̴̠̱̅̉ ̴̮͙̚и̴̣͔͓͙̌̋̚з̵̞̰͕̱̾́ ̸̝̺̊н̷̡̰̦͓̯́̊̇̑̓а̸̢̝͖͕̗͋̄͗̒̃и̴̙̔́̑͗̄б̶̠̪̃̓̐͂͠о̷̭̪̙͇̓̃͘л̶̢̰̫̄͘ͅӗ̶̖͉͓̝̭͝ё̴̢̺̗́ ̶̼̣̏͗̑͂р̷̲̃̒̑͝а̸͚͑̎̋̉͘с̵̨̖͕̻́п̶͖̺̆͛̎р̶̢̅͒̾͝о̴͈̦̽с̷̝̆̾́͠т̶̖̙̳̭̂̃͐р̵̮͓̥̬͊̽̒̽͘а̵̧̙̎͊̚н̷̙̈́̓͌̂ё̴͚̲͖̿̆̈̄̽н̵̨̢̘̝͌͛̓̚н̵͕̇̉̋̊̎ы̷̘̖̙̫͊ͅх̶̧̮̫͊̄̾ ̴̝́̓̏̇͑͜с̷͎̀̉̊͑̀к̸̢̤̍̅̅̈́͗р̸̱͕̲͕̇͛͒́̀и̷͇̼̬̒̿м̴͓͗̓̊̊е̷͓͔̲̎̏р̶̖̬͂̓̂о̵̮͊̈́͘в̸̦̒͗̌.̷̹̖͕͇̈͒̾̆ ̵͈̩̟̓̒̀И̵̞̰͔̏͘ͅм̵͔̘̖͂̿̓́̾е̴̛̖̲̠͆͐̀͜е̶̖̳͍͋̿̓̎т̴̢̤̘̤̻̿̽̇ ̷̺̀м̷͔́̊͝н̷̜̙̜̌̾̾̎о̷͓̟́́̂̌͠г̷̙̠̰̃̑̑͗͗о̶̪̎͝ ̷̻͙͖̏̇́̈́͝н̷̦̰̀͛̂̂̾а̶̤̇̃̌̉̾з̴͖̖͑̕в̵̹̀͊̔͒͜а̶̬̄̒н̸̧̗̲̽̐и̷͖̺͂̔͜й̶̭͖͙́͂͑͆:̸̯̞̙̤̝̓ ̸̭̳̞̻̻́̂͌̚«̶̹̅̓̈́̾͝С̴̻͗а̶̪͚͕͍͒м̷̥̖̦̘̿ы̵͍̥̣̹̋̔й̶̦̦̅͜͜ ̶̼͇̦̫̘͗͘с̸̭̓т̶̣̰͖̝̬̾р̷̞̟̊͐̊а̵͈̯̱̻̦́̋͗ш̷̺̓н̸̢̑̇ы̶̯̀̈́̾͠й̴̮̊͝ ̸̨̧̣̥̄ͅс̴̞̓̈́к̷̱̀̊̑̒͆р̵̛̮̏и̸̜̟͘м̴̞̘͖̻̱̈́͋̊̄ё̶̻̗̼͗͝р̶̡̦͈̄̄̈ͅ»̷̨̫̣͇͚̌̓͊,̴̙͒̉̆͜ ̸̪̬̋̈́͜«̸̺̠̲͇͂̽͐̈́2̶͙̓́͋̇5̵͍̠̎̀̉ ̴̰͋̾̔̀̎к̷̠̹͌̌ͅа̶̘̦̤̖̍̇̚д̵̡͇̹́р̴̆̑͝ͅ»̸̩̤̠͌,̶̪̳͕̉̌̈́͜ ̸͎̥̫͑̐̔̈́͌«̸͎̘͕̬̔̓̍͝н̸̗̲͙͛̈́͛͝ͅе̵͙͐̀ ̴̗͊̏̈͛̏с̵̛̙̌̆̂̓т̷̢̪̩̹̽͗р̶̢̝̭̺͒̑̆̏а̶̰̓̃̚͝ш̷̲̑̅̌̓̕и̶͙̖͒л̷̨͋к̷̭̖̼̘̒а̸̜̏ ̸̢̬͎̻̠͂̚в̵̡̤̳̈́ ̴̯̅̀͒̓̕ͅк̴̠̮̪̏̔͆̆͝о̵̧͇͍͆͛͜н̸̼̝͑̉͊̚̚͜ц̵̰̰̐̄̄̈́̃е̷̖̅͂́ ̶͉̲̍̽̆̀̚и̴̰̹̲̼̗̐д̶̬̍͂́͝ё̵̥̏̇̽̌͘т̴̡̗͉̱̑̈́̈ ̴̢̗̀̎̊м̶̪͂̍̍и̵̺͚̞̭͛л̷̗̣͖̗̫̓ы̴̪̏̈́й̵̡̜̟̩̲̑̀̐͘ ̶̛̭͇͊̾̔̀͜к̵͎̲̮̍̍̈̎о̵̧̪͖̠́̿́͝т̵̖̻͍̦͗и̵̬͓͍̭̳͋́̋͗̕к̵̩̇̍̚͜͝»̶̨̣̻̒̚͘̚͘͜ ̶̣͍͕̐͛и̴̪̖̑̆́̊̈ ̸͎̝̩̃͆̓т̷̩̙͎̾͒̉͝͠.̶͈̆̄ ̶͔̭̘̰͆͊̚д̴̬̍.̸̧͍̖̰̗̌̎̓ ̸̛͎̲̳̭̀̓̚͝О̸̙̉̓д̷͚͕͔͐̀̋̑͜н̴̘̞̙͍̼̒͛͛̒о̴̦͎̞̎͗͊͆͆ ̵̭͚̙̟̀̀̈͠ͅи̵̹̂̄̕͘з̵̨̳̝̗̑̃̍ ̶̛̰͙̥̀̊̑̈с̷̫̲̙̫͗̄а̶̖̞̓̌͗̎м̷̳̜̙̞̙̏̀͠ы̸̡̬̖͍͑͝͠х̵̻̟̻̜̬́̎͠ ̴̰̫͖̌̐̿̀͝с̴̠̳̻̟̈́т̶̦͉͕̟͛͊̏р̶̙̄̔̍̓̀ӓ̵̨̛̞̪̦͒ш̵̧̺̮̰͔̍̊̎н̷̡̞̄͝ӹ̶̩́х̸̢̠̣̟̿͛̀̄ ̴̢̺̈в̷̛̭̱̲̙͆͌͂и̸̭͒д̴̠̼̊͑́̾е̷̢̭͝о̵̗͐̐-̴̘͉̪͗̈́̇͆с̶̳̮̆ͅк̵͔̭̃͒̆͗͝р̶̼̪͎̗͈̀̔́̈́и̶̝͎̞̫̇̀̍м̶̧͎̬̫̦̎е̴̡̪̙̤̓р̸̡͛̕о̸̢̥͍́̈́̑̇в̷̛̥͗̀,̶̛̾͜ ̵̲̫͖͌п̵̘͍̞͉̈́о̴͚̰͈̲̃͒м̷̲͉̩̓̏̎̆͝о̴̼̠͝г̸̧̒̀͐и̵̢̛̰̪͔̒͊т̴̞̩̲͓̫̇͆е̷͈̂̿,̴̫̗͒͊͘͠ ̶̧͚͓̅͊̓͝я̶̼͊̂̕͝ ̵̙̣̗͔̙̊̓у̸͕͇͉̪̍͌м̵̤̣̉͐͝и̵͌͜р̵̛̣̦͓̃̄а̶̱̘͌̋͐̍ю̶̠̆̅̐.̵̎̓͝ͅ ̴͎̖̻͈̅̆С̴͍͛̄̓ͅӧ̷͓̙̙͈̞з̵̩̽̒͠д̸̳̭̀̅̃а̵̰́̈́̿̓͠н̵̧̄ ̶̙̄̈́͋͌п̸̣̥̞̯͍̈́̂͛̆̿о̷̢̥̻̬̲̏́̈́͗̓л̶̫̳̒̌͊̎̕ь̸̥̺̟̉͌̕з̶̲̠͆͝о̷̢̡͈̭̂в̴͍̹͓͔̓͊͛͝а̸̛̮͍̤̐͘т̸̱͚̯̳̣̎͘̕ё̵̰́̀л̶͓̯́е̵̳͚͍̥̄͜м̵̬̣̺͕͍͊̈́̌̌ ̴̮̩̤̟͍͒̿Y̵̛͚̋́̽͐o̷̡͂́̉͒͘u̷̧̧̗͊̃͑̾̄ͅt̴̨̟̅̀u̷͎͖̹͓͇͗̈́̓̚b̴̬͇͚͆̈́̍ė̸̛̳̪̊ ̴̡͉̝̏̇A̸̗̪͍̺͋̄̃̕n̵͉̈͂̈́̽͝ͅͅͅd̷̰̎̐̉́r̷̲̗̔͒̽̈́ę̴̼͆y̷̗͊̽͌j̷͓͊̓̂͜8̴̮̄̍̑͐5̵̣͈̦̍̌̽͝7̷̨͓̮̺̮̀̿̓̐ ̸̜̐(̷̰̙̰̈́͜с̵̨̡̩́͑̓̑е̶̱͔͕͔̪̊͒̽̾й̵̥̥̅̏̅̂͜ч̵̧̯̜̩̆ͅа̴̛̤͕̼͙͋͠с̸̡̞̺̜͐͗͜͝ ̴͍͖̱̺̒͝о̵̡̺̣̣̮͊͐͗̕̕н̷̞̗̲̽̊̄͝ ̵͈̐͛̿̈́̆п̸̨̨̮͍̀̄̓̑͆е̶̤̅͐р̶̧͎͈̌е̸̧̛͚͓̗ͅи̶̹͔̒̕м̴̥͔̐̐̿͛̃е̸͙͓͚̔̋̍͝ͅн̵̡̭̇̃̎͠о̵̨͕̯̭̕в̸̲͙̣̅͆́͐̈́а̷̻̄̂͑́̓л̴̟̹̯̭̎̈͆ ̶̧̪̳̲̯̊к̴̞̉͝а̴̨͕͓͌́͜͜н̴̻̖̲̭̬͊а̴͈͇̲̪̑л̸̢̙̼̖͈̽͘͠ ̴̮̹͕̰̬̄̇͆̾͠в̶̟͌̒͝с̴͙̿͊̌͐͝ё̵̨̃̂ ̷̗̊т̶̛̜͉͈͕̱̇͌͑л̸̢͈̫̉͊̀е̷̤̄̓̈́̈́̕н̸͚̐͐̃ ̸̟̹͙̪͕̀̇́и̵̣́ ̴͔̽͂͑̕м̷͓̘̼͋р̷̙̑̇а̶̬̦͑̆́͋̿к̷̺̯͖̞̓̎̃̽͘ ̸̨̭̀̾̈́.̴̝̪̜̼̳̊́̄̊.̶͚͖͚̹̃.̸̝̤̥̎̍̚͝ ̶̪͕͚̗͝О̶̨̳̙̠́̈́̉̅̓р̴̤̚и̸͇̣͗͂̓̋͛г̷̤̇̿̇͆и̵͍̤̮͙͂̋̅̉͝н̵̤̓͘а̶͇͓͇͋л̷̌͜ь̶̥̏̀͑н̶̛̹͈̗̤̓ͅо̵̛̦̱̗̎̽̕͝е̶̤͔̣̲̥͑̎͒͘ ̷̣̖͙̲̟́в̴̫̱̭̗͚̍̈̒и̵̛͉̾̆д̶͙͎́͐͋̌̄е̸̲̩͔́̈̋̐̆ͅо̵̯̣̭̹̘́͂̇̚ ̶̣̊б̶̻͔̣͗̇̂̈́́͜͜ы̸̨̲̹͗͝л̷̡͍͕̣͕͛о̷̧̰̓̑͠ ̵̡̩͎̹͉̓̇̔о̷̳̙̌п̸͖̤͔̙͌̀у̸̮̍̈́̀̈́͘б̶̢̧̤̲͙̌̓̑͝͝л̴̹́̄́ͅи̵̲̦̘̫̑̔̏к̵̳͈̐̾̊͠о̸̢̇̚в̶̡̨̹̤̫̀͑̈́͘а̸̨͚̤͒н̶̦̗̗̏о̴̡͚̭͙̪̑̅͌ ̵̣͚̝̫̓́4̵̭̺̑̋͑́ ̴̲̤̟̫̈́̆̃͝д̴̘͇̟̓̑̊̅͑е̸̦̙̞̣́̀к̸̧̼͔̺̠͊а̶̬͕͒б̴̛͉͎͐͌̀͠р̴̢̜̤͙̅̃̇̕я̷͖̱̋̄ ̵͉̊̋́̌͝2̴͎̜̭͆͒͒͘͠0̵̠͚͎͂̓1̴̹̦̳̜͓̆̈́̋0̴̻̗͉̹͗ ̴͈̱̩̄̍ͅи̴̫͉́̆̀ ̸̺̙̪̠̍̈́п̸̢̟̝̻́̽̀͂͑о̷̯̖̮́̓̃̂ ̷̫̪́̀̽с̵͙̹̔̆̂̋о̷̰̺̼̹̊̊͂͝с̵͔͋͐͋̑т̵̥́̚о̴̳͍̮̪͙̇̂̐̒̉я̸̡̣͉̄̈́̎͝н̸͓͓̠̲̯̑̽̕и̷̨̼͖͔̉ͅю̷̻̜͕͒̈́͐͜ ̷͙̰͍̦̚н̷̧̡̗͙̤̍а̷̧̪̘̎̆̋͝ ̶̨̬͇́н̴̟̈́о̸̥͓̅͌͊̈́я̸̬̽̓̂б̶̺̅͗̂͋р̷̼̥̍͑̚͝ь̴̢̩̹̟͋͂̋̑ ̵̤̩́̈́͠2̵̝͓͕͚̍͂̋̈́̿0̷̙̓̆̋̚1̶̛̱̤̥̼͆̈́̚4̶̽̎̑͛̈́͜ ̵̣̜̠̩́̒г̸͇̪̦̬͗̽̎̅о̷̝̲̑͒̒д̶̧̮̋͋͐̒а̸̡̞̳̳͎̓ ̷͕̊͘н̸̧̡͇̥̦̀̈̾͠͝а̶̲̲̀͆̍б̸̛͙̈́͋р̸̗̍̿̔̌а̵͖̖͛́͂л̶̹͈̭̜̃̅͋͐̔о̷̗͎̂ ̷̥̙̔̄̇̒͛б̸̭̃͌о̴͙͗̋л̴̛͇̳͑̀̀̊е̶͍̻̟̹̗̂̊̈́̏̓е̷͙͇͋͗͜͝ ̵̢̐̀͜͜1̶̼͛̋4̸̼̩̮̹̼̾͂̒̑0̶̨̥̜̌͗ ̸̖̪̈т̴̹̺̈́̐ӹ̵̛̺̬́̽̇̚с̶͙̼̟̤̓̽я̷̢̛̺̤̻̥̈́̒͝ч̵̢̛͉̻̖͊͋̚ ̷̣̳̄̈̌͋͘с̶̗͕͐̆̕м̶̟́ё̸̪̞̙͎̓̓р̴̩͜͝т̴͔͇͉̗̌ͅе̷̙̣̝̫̍͐й̸͍́̽́͆.̵̬̥̭̾͗̍̐̈́
В картинки Zalgo добавляет порчу глаз, рта на лице, добавляя туда кровь, некую жижу, клыки, испорченную плоть, и т.д.
Как работает текст «Залго»?
Что это за строка и в чём её смысл?
H̡̫̤̤̣͉̤ͭ̓̓̇͗̎̀ơ̯̗̱̘̮͒̄̀̈ͤ̀͡w͓̲͙͖̥͉̹͋ͬ̊ͦ̂̀̚ ͎͉͖̌ͯͅͅd̳̘̿̃̔̏ͣ͂̉̕ŏ̖̙͋ͤ̊͗̓͟͜e͈͕̯̮̙̣͓͌ͭ̍̐̃͒s͙͔̺͇̗̱̿̊̇͞ ̸̤͓̞̱̫ͩͩ͑̋̀ͮͥͦ̊Z̆̊͊҉҉̠̱̦̩͕ą̟̹͈̺̹̋̅ͯĺ̡̘̹̻̩̩͋͘g̪͚͗ͬ͒o̢̖͇̬͍͇͓̔͋͊̓ ̢͈͙͂ͣ̏̿͐͂ͯ͠t̛͓̖̻̲ͤ̈ͣ͝e͋̄ͬ̽͜҉͚̭͇ͅx͎̬̠͇̌ͤ̓̂̓͐͐́͋͡ț̗̹̝̄̌̀ͧͩ̕͢ ̮̗̩̳̱̾w͎̭̤͍͇̰̄͗ͭ̃͗ͮ̐o̢̯̻̰̼͕̾ͣͬ̽̔̍͟ͅr̢̪͙͍̠̀ͅǩ̵̶̗̮̮ͪ́?̙͉̥̬͙̟̮͕ͤ̌͗ͩ̕͡
1 ответ 1
В письменности множества языков есть диакритические символы — это значки, которые добавляются к букве и в результате получается либо новая буква (е → ё), либо какой-то дополнительный смысл той же буквы (например, ударение).
Таких значков очень много: фантазия человечества придумала десятки кружочков, крючочков, точек, чёрточек и прочего. Очень сложно было бы вместить в стандарт сочетание каждого из этих значков с каждой возможной буквой. Поэтому были придуманы и разработаны комбинируемые символы.
Комбинируемые символы могут добавляться не только сверху, но и снизу: A͢, и даже прямо поверх символа: ̸А. Можно даже сразу везде: ̸Å͢.
Что произойдёт, если после одного «базового» символа поставить мнооого комбинируемых? Получится столбик символов, вот такой: Å̊̊̊̊̊̊̊̊. Именно так и устроен «Залго»-текст.
Текст выше написан насколько возможно простым языком и содержит ряд фактических неточностей. Ниже — примечания для профессионалов.
Аналогичный вопрос на английском: How does Zalgo text work?
Что такое символы zalgo
[upd27.04.2021] Очень приятно спустя столько времени слышать приятные отзывы о своем руководстве, даже после того как стим превратил его в кошмар. Из-за уменьшения размера невидимых символов которые я ставил для того чтобы все было по центру все руководство сбилось, съехало, перевернулось и все такое. Я давно хотел пофиксить но думаю легче оставить его таким какое оно есть, для памяти, и сделать новое, думаю займусь этим как нибудь.
╭━━━━━━━━━━━━╮ ╭━━━━━━━━━━━━╮
Ա ա Բբ Գգ Դ դ Ե ե Զ ა ბ გ დ ე ვ ზ ჱ თ
զ Էէ Ըը Թթ Ժ ժ Ի ի Լլი კ ლ მ ნ ჲ ო პ შ ყ
Խ խ Ծծ Կկ Հհ Ձձ Ղ ղჟ რ ს ტ უ ჳ ფ ქ ღ
Պպ Ջջ Ռռ Սս Վվ Տտր ჟ რ ს ტ უ ჳ ფ ქ ღ
Ցց Ււ Փփ Քք Օօ ՖֆՐ ჩ ც ძ წ ჭ ხ ჴ ჯ ჰ ჵ
╰━━━━━━━━━━━━╯ ╰━━━━━━━━━━━━╯
╭━━━━━━━━━━━━━━━━━━━━╮
Ӑ Ӓ Ә Ӛ Ӕ Ғ Ӷ Ҕ Ӗ Ҽ Ҿ Ӂ Җ Ӝ Ҙ Ӟ Ӭ Ҍ
Ӡ Ӥ Ӣ Ӏ Ҋ Қ Ҟ Ҡ Ӄ Ҝ Ӆ Ӎ Ҥ Ң Ӊ Ӈ Ӧ Ө Ӫ
Ҩ Ҧ Ҏ Ҫ Ҭ Ӳ Ӱ Ӯ Ү Ұ Ҳ Һ Ҵ Ӵ Ҷ Ӌ Ҹ Ӹ Ҍ
╰━━━━━━━━━━━━━━━━━━━━╯
╭━━━━━━━━━━━━━╮
Α α Β β Γ γ Δ δ Ε
ε Ζ ζ Η η Θ θ Ι
Ϊ ι ϊ Κ κ Λ λ Μ μ
Ν ν Ξ ξ Ο ο Π π Ρ
ρ Σ σ ς Τ τ Υ Ϋ υ ϋ
Φ φ Χ χ Ψ ψ Ω ω
╰━━━━━━━━━━━━━╯
o(> _ _ 。 ω [www.messletters.com]
Думаю если вам будет интересно вы сами справитесь с этим сайтом, но всё же, хочу сказать пару слов о каждом пункте.
11 [www.messletters.com] Огромное количество больших артов. Будет полезно для любителей красивых артов в коментариях.
В завершении хочу сказать, что на это руководсво было потрачено очень много времени, на поиски самих символов, и оформление.
мне будет очень приятно если на это руководство вообще кто-то заметит, поскольку
это моё первое руководство.
Так-же вступайте в мою группуSPECTR◬TE
Особо времени на неё нет, но будет приятно если там будет большое количество людей
Я не думаю что кому-то это будет интересно, но всё-же, можете меня поддержать и
финансово :)>
Zalgo
Не так давно на сайты вебмастеров набежала очередная волна школьников, которая спамила в комментарии мозговыносящий, ломающий верстку, текст. Такой текст еще называют ZALGO. Пришлось мне в оперативном порядке искать лекарство от этой напасти.
Сам по себе ZALGO текст представляет из себя ряд повторяющихся друг за другом надстрочных символов. Такой функционал был добавлен в Unicode для того, чтобы отображать арабские, немецкие(Ü) и китайско-японские алфавиты, поэтому какой-бы то нибыло видимой защиты от данного явления — нет. И единственный способ борьбы со спамерами использующими эту, с позволения сказать, уязвимость — ручная модерация и бан.
К примеру блог zenpr, в одно время, был доверху забит такого рода спамными комментариями.
Потом анонимус решил позверствовать на ТопСапе Чане, что и побудило меня найти лекарство от этой «заразы».
Не хватало еще, чтобы мою борду перекинулась эта эпидемия! Полез в гугл и на Stackoverflow для поиска решения этой роблеммы. И не нашел оного. Точнее было одно решение, которое предполагало чистку всех символов, кроме букв и цифр. Но оно было, мягко говоря не оптимальным и не кошерным. Пришлось изучать матчасть и писать свой костыль.
В результате моих изысков было получено два решения.
Полностью удаляет все надбуквенные метки. То есть буква Ё станет после обработки просто буквой Е. Если вы готовы смириться с этой утратой — используйте эту регулярку.
Второе, более либеральное:
Данный вариант удаляет все буквенные метки выше 1-го уровня вложенности. Проще говоря буева Ё так и останется буквой Ё.
Такой текст — ͐̈ͩ̎Zͮ͌ͦ͆ͦͤÃ̉͛̄ͭ̈̚LͫG̉̋͂̉Oͨ͌̋͗!
Будет преобразован в такой — ZÄLͫGO!
Так-же я зарегистрировался на Stackoverflow и на ломанном энглише запилил туда результаты своих изысканий — мой ответ самому себе на Stackoverflow
Надеюсь, что это будет полезно, ведь даже крупные проекты вроде хабра и лайфжурнала не защищены от такого рода «атак».
ZalgoFuzzing: использование нестандартных методов размытия пейлоадов
Использование нестандартных техник обфускации пейлоада (полезной нагрузки) при проведении тестирования на проникновение веб-приложений может позволить обходить фильтрацию защитных средств и способствовать реализации вектора атаки. В этой статье я расскажу про т.н. 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:
В ветке обсуждения отображения последовательностей представлен еще один пример обхода парсинга:
Основной смысл такого обхода — преобразования символов, проходящих фильтры, в необходимую последовательность, на выходе дающую работающий (уже прошедший фильтр) пейлоад. В качестве примера привожу изображение, демонстрирующее такое преобразование:
Исследователем 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-нормализации для обхода защитных средств далеко не нова (но и не сильно распространена), но тем не менее, позволяет находить новые способы обхода фильтрации.