The purpose of this article is to provide a repeatable means of performing cross-site scripting attacks via an SVG file.
SVG, otherwise known as “scalable vector graphics” in which an XML document used to build an image.
The above code generates the following image:
Take for example the following code:
With all of this in mind, seriously consider limiting or blocking SVGs from being uploaded. More often than not, developers have overlooked SVG as a potential threat vector and allow profile picture upload of malicious SVG files.
Additionally, if you are familiar with XXE attacks, this can also be used for that attack vector in some circumstances. If you aren’t already scanning uploads regardless of their extension or mime type, it might be time to change that.
Long story short, if you can pop XSS within an SVG you can do pretty much anything up to and including store malicious JS, malicious XML or malicious HTML in-line.
Did you find this useful? Browse more like it on the RedTeam blog!
10-Point Offensive Security Checklist
Get A Bird's Eye View Of Your Organization's Security Readiness