#hacking #knowledge #clientSide
SVG забавная штука, даже если Content-Type возвращаемого файла image/svg+xml;, в файле .svg все равно можно исполнить JS код (Казалось бы, тип image). Даже если сервер фильтрует вхождение слов script и onload для защиты от типичных векторов атак (в духе: `<svg onload=''/>`), можно добавить новое пространство имен в тег <SVG> и это позволит вносить HTML тэги с работающими атрибутами и всеми вытекающими последствиями.
В данном примере будет исполнен JS код из атрибута onerror тега img.
Больше примеров по обходу фильтров и проведении XSS атак через SVG можно найти в этой статье: https://insert-script.blogspot.com/2014/02/svg-fun-time-firefox-svg-vector.html
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