#hacking #knowledge #clientSide



SVG забавная штука, даже если Content-Type возвращаемого файла image/svg+xml;, в файле .svg все равно можно исполнить JS код (Казалось бы, тип image). Даже если сервер фильтрует вхождение слов script и onload для защиты от типичных векторов атак (в духе: `<svg onload=''/>`), можно добавить новое пространство имен в тег <SVG> и это позволит вносить HTML тэги с работающими атрибутами и всеми вытекающими последствиями.



HTTP/1.1 200 OK

Server: nginx/1.12.2

Date: Wed, 06 Feb 2019 11:55:47 GMT

Content-Type: image/svg+xml; charset=UTF-8

Connection: close



<svg xmlns="http://www.w3.org/1999/xhtml">

<img src="error" onerror="alert('XSS')" />

</svg>




В данном примере будет исполнен JS код из атрибута onerror тега img.



Больше примеров по обходу фильтров и проведении XSS атак через SVG можно найти в этой статье: https://insert-script.blogspot.com/2014/02/svg-fun-time-firefox-svg-vector.html