Cross-site Scripting (XSS) - Stored in falconchristmas/fpp

Valid

Reported on

Jun 27th 2021


✍️ Description

GET parameter &value= in fppjson.php is vulnerable to stored cross site scripting.

Analysis Trace:

  1. Application takes unvalidated user data in &value= from GET request of /fppjson.php?command=setSetting&plugin=&key=emailserver&value=ytes";</script><script>alert(1)
  2. Now visiting any application page such as GET /backup.php or GET /plugin.php will pop up a stored XSS

POC: https://drive.google.com/file/d/10hjFTEAKAfBgXXhCcarngqlT2mAmc-x9/view?usp=sharing

🕵️‍♂️ Proof of Concept

  1. Make a GET Request of /fppjson.php?command=setSetting&plugin=&key=emailserver&value=ytes";</script><script>alert(1) which will save our XSS payload using &value= parameter.
  2. Now access any page such as: /backup.php and XSS will be pop up.

💥 Impact

The attacker can:

Perform any action within the application that the user can perform. View any information that the user is able to view. Modify any information that the user is able to modify. Initiate interactions with other application users, including malicious attacks, that will appear to originate from the initial victim user.

References

We have contacted a member of the falconchristmas/fpp team and are waiting to hear back 3 years ago
Greg Hormann marked this as fixed with commit 29301f 3 years ago
Greg Hormann has been awarded the fix bounty
to join this conversation