![]() |
https://forum.antichat.xyz/attachments/4862475/1.png
Межсайтовый скриптинг (XSS) - одна из самых распространенных уязвимостей, которую можно обнаружить чуть ли не на любом сайте в сети интернет (на некоторых, вроде Google и Amazon, придется хорошо поискать - в этих компаниях работают много разработчиков с большим опытом за плечами). Однако, иногда возникают проблемы - например, проблема в количестве символов, которое мы можем ввести, для эксплуатации данной уязвимости. В этом посте мы рассмотрим, как можно решить такую проблему, уложившись, например, лишь в 20 символов. Совместимость с юникодом В Unicode одни и те же сложные буквы, вроде Й, Ё, Ç и т.д., можно представить в двух формах - в виде одной буквы или в виде одной базовой буквы (например, «C») и модификаторов. Такой подход был введен в стандарт для обеспечения совместимости с существующими ранее стандартными наборами символов. Таким образом, стандарт нормализации Unicode описывает два вида отношений между символами: Canonical и Compatibility. Каноническая эквивалентность предполагает, что последовательность двух кодовых пунктов является полностью взаимозаменяемой. Т.е., комбинация из двух символов может быть канонически эквивалентна одному символу - n (маленькая латинская "n" - U+006E) + ◌̃ (тильда - U+0303) = ñ (маленькая латинская "ñ" - U + 00F1). Совместимая эквивалентность предполагает, что две совместимые последовательности кодовых пунктов выглядят по-разному, но в некоторых ситуациях могут быть взаимозаменяемыми. Например, два латинских символа f, т.е. "ff" (U + 0066 U + 0066), имеют эквивалент одному символу "ff" (U+FB00), но не всегда. По сути, мы видим один и тот же текст, однако последовательность символов не является строго эквивалентной (до тех пор, пока мы не проведем нормализацию). https://forum.antichat.xyz/attachmen...5c9ec792fa.png Проблема с лимитом ввода в 20 символов Итак, мы нашли уязвимый сайт. Наш пейлоад выглядит так: HTML: Код:
Особенности Unicode в браузерах Не для кого не секрет, что в современных браузерах нет никаких проблем с кодировками, как это было раньше. А это значит, что нам ничего не помешает реализовать нашу шалость. Рассмотрим следующий пейлоад: HTML: Код:
Вот ещё примеры символов, которые мы можем использовать:
https://forum.antichat.xyz/attachments/4862475/1.png Реализация Давайте купим домен telsr.pw. https://forum.antichat.xyz/attachments/4862475/1.png Как видите, стоит он не дорого - всего 1.28$. Если мы будем использовать в нашем пейлоаде только стандартные символы, получится, что мы превысим допустимый лимит в 20 символов. https://forum.antichat.xyz/attachments/4862475/1.png Заменим их на эквиваленты: https://forum.antichat.xyz/attachments/4862475/1.png HTML: Код:
https://forum.antichat.xyz/attachments/4862475/1.png Дальнейшие шаги Выглядит отлично, но мы не учли одну деталь - если на уязвимом сайте будет использоваться HTTPS-протокол, то при импорте любого скрипта, он будет подружаться по этому же протоколу. Я задумал реализовать DNS-редирект с telsr.pw на xsshunter.com. И тут появляется ещё одна проблема - так как используется протокол HTTPS, если мы выполним перенаправление при помощи DNS на другой сайт, произойдет несоответствие сертификата, и файл Javascript не будет загружен. https://forum.antichat.xyz/attachments/4862475/1.png Решается такая проблема следующим образом:
https://forum.antichat.xyz/attachments/4862475/1.png https://forum.antichat.xyz/attachments/4862475/2.png |
Капец, если бы я знал как решить эту проблему с сертификатом еще три года тому назад, когда я впервые с ней столкнулся
Ну а если по существу то примного благодарен за статью, очень полезно! |
Есть у кого лист юников для домена ?
|
Спасибо за статью! )
Про Код:
ffff |
Спасибо статейка вышла на славу
|
прочитал вашу статью и появился вопрос, а возможны ли коллизии, как с мд5 в в этих цифровых сертификатах или нет?
|
весьма странно что автор пропал - на вопросы не отвечает?
|
Цитата:
|
☠xrahitel☠,о благодарю за первоисточник
|
Цитата:
|
| Время: 18:45 |