Cross-site Scripting (XSS) - Stored in yeswiki/yeswiki
Reported on
Oct 5th 2021
Description
Cross-Site Scripting (XSS) attacks are a type of injection, in which malicious scripts are injected into websites. An attacker can use XSS to send a malicious script to an unsuspecting user. The end user’s browser has no way to know that the script should not be trusted, and will execute the script.
https://github.com/YesWiki/yeswiki/
is vulnerable to XSS as shown below:
Proof of concept
Vuln variable: $_POST['name']
Snippet:
echo ' — '.$this->user->getProperty('name');
...
$href = $this->href('', '', 'user='.$this->user->getProperty('name').'&from='.$referrer, false);
array(
'name' => trim($_POST['name']),
'email' => trim($_POST['email']),
The name parameter is stored and printed without processing.
Payload
Without login go to http://localhost/yeswiki-doryphore/?ParametresUtilisateur
to create a new account.
In the "Votre nom d'utilisateur, utilisatrice" insert the following:
poc<img src=x onerror=alert`xss`>
Fill the aditional fields
Clic in new account
Observe the XSS
Impact
Because it thinks the script came from a trusted source, the malicious script can access any cookies, session tokens, or other sensitive information retained by the browser and used with that site. These scripts can even rewrite the content of the HTML page.