-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Monstra 3.0.4 has Stored XSS via Uploading html file that has no extension. #459
Comments
Ouch. Very unfortunate to see that all these security issues are not resolved and no reaction from the devs. |
I got the CVE for this vulnerability - CVE-2018-18694 |
Normally it (the vuln) should not be publicly disclosed (at first). But seems the devs do not react which is bad. |
Only Admin can access Admin Panel |
How can you be sure of that? A file upload without any checks is dangerous. This is an arbitrary file upload vulnerability. |
Okey, I will double check this for New Monstra (Flextype) #460 |
@DanielRuf Thank you for answer instead of me. In my opinion, File upload feature MUST have the file filtering logic. There are many possibilities for stealing admin authority. Thank you guys! |
Also, Please consider Thank you. |
Brief of this vulnerability
In uploading process, Monstra file filter allow to upload no-extension file. If html file that has no extension, it can be executed in browser as html, and it causes of Stored XSS.
Test Environment
Affect version
<=3.0.4
Payload
move to
http://[address]:[port]/[app_path]/admin/index.php?id=filesmanager
with admin credentialSave php codes with no extensions. and upload it like below.
move to
http://[address]:[port]/[app_path]/public/uploads/[uploaded file].
Reason of This Vulnerability
Monstra prevent to upload php-style files using extension filer in uploading process at
./plugins/box/filesmanager/filesmanager.admin.php
like below.This filtering logic checks that extension of upload file is in their blacklist($forbidden_type variable), but it is not check that extension do not exist in their logic.
Following this logic, No extension file saved with appending '.' at end of filename (e.g. xss -> xss.)
It can be executed in browser(I tested in Chrome ver 68.0.3440.106 (Official Build, 64-bit)) as html and JavaScript.
It can be executed in browser as html, and it causes of Stored XSS.
The text was updated successfully, but these errors were encountered: