Всем привет! Давай расскажу что такое уязвимость XSS на основе DOM, как её найти и какой импакт можно получить.
[0x0] | Уязвимость DOM XSS
DOM - Document Object Model. Если говорить простыми словами, то DOM это некая браузерная технология, которая позволяет весь html код разбивать на отдельные сегменты, для помогает при рендере страницы
Также работая с DOM через язык JS можно обращаться к элементам кода html и менять к примеру текст, или еще какие нибудь вещи. Если брать тупой пример, то: когда у юзера привилегии на сайте низкие - будет высвечиваться такой текст, если админские - то другой
XSS - Cross-site scripting. Это уязвимость на клиентской части, с ней можно встраивать свой вредоносный JS код и делать всякое...
Например: украсть куки, сделать кейлоггер, примеров море.
Возникает из-за недостаточной валидации пользовательского ввода, из-за отсутствия защитные мер и защищенных HTTP-Заголовков и нужных атрибутов у cookie, вообще много из-за чего возникает, это не полный список
[0x1] | Суть DOM XSS
Суть данной уязвимости в том, что всё, что ты пишешь попадет в небезопасный синк(функция)
Чтобы было яснее - есть сурс(источник) это пользовательский ввод, это может быть форма, параметр и т.д.
И есть приемник(синк) - то самое место, куда попадает твой ввод, это может быть функция, класс и т.д.
Небезопасных синков у JS множество, я рассмотрю один - InnerHTML
Данный синк уязвимый из-за того, что - всё что в него попадет он рендерит как HTML код и кидает в страницу, тем самым он позволит твой пейлоад в виде <script>alert(1)</script> внедрить в DOM и далее можно делать всякое.
[0x2] | Как найти DOM XSS
Есть такой софт всеми известный в кругах пентестеров - это BurpSuite, а у него есть установленный плагин которые запускается с браузера встроенного в эту утилиту.
У плагина есть канарейка(рандомный текст) которую можно вставить в весь пользовательский ввод и отследить в какой синк все будет идти, если в небезопасный - то можно красть куки, генерировать пейлоады различные.
Статья подошла к концу, и помните - действуйте всегда этично а не плохо
Если хочешь продолжение с практикой - дай знать, сделаю
[0x0] | Уязвимость DOM XSS
DOM - Document Object Model. Если говорить простыми словами, то DOM это некая браузерная технология, которая позволяет весь html код разбивать на отдельные сегменты, для помогает при рендере страницы
Также работая с DOM через язык JS можно обращаться к элементам кода html и менять к примеру текст, или еще какие нибудь вещи. Если брать тупой пример, то: когда у юзера привилегии на сайте низкие - будет высвечиваться такой текст, если админские - то другой
XSS - Cross-site scripting. Это уязвимость на клиентской части, с ней можно встраивать свой вредоносный JS код и делать всякое...
Например: украсть куки, сделать кейлоггер, примеров море.
Возникает из-за недостаточной валидации пользовательского ввода, из-за отсутствия защитные мер и защищенных HTTP-Заголовков и нужных атрибутов у cookie, вообще много из-за чего возникает, это не полный список
[0x1] | Суть DOM XSS
Суть данной уязвимости в том, что всё, что ты пишешь попадет в небезопасный синк(функция)
Чтобы было яснее - есть сурс(источник) это пользовательский ввод, это может быть форма, параметр и т.д.
И есть приемник(синк) - то самое место, куда попадает твой ввод, это может быть функция, класс и т.д.
Небезопасных синков у JS множество, я рассмотрю один - InnerHTML
Данный синк уязвимый из-за того, что - всё что в него попадет он рендерит как HTML код и кидает в страницу, тем самым он позволит твой пейлоад в виде <script>alert(1)</script> внедрить в DOM и далее можно делать всякое.
[0x2] | Как найти DOM XSS
Есть такой софт всеми известный в кругах пентестеров - это BurpSuite, а у него есть установленный плагин которые запускается с браузера встроенного в эту утилиту.
У плагина есть канарейка(рандомный текст) которую можно вставить в весь пользовательский ввод и отследить в какой синк все будет идти, если в небезопасный - то можно красть куки, генерировать пейлоады различные.
Статья подошла к концу, и помните - действуйте всегда этично а не плохо
Если хочешь продолжение с практикой - дай знать, сделаю
Последнее редактирование: