Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ulises4 en 9 Mayo 2012, 03:39 am



Título: Sql Injection
Publicado por: ulises4 en 9 Mayo 2012, 03:39 am
Hola, me gustaria hacer sql injection a un tipo de panel llamado Flux Control Panel, tengo el codigo del panel, lo que crei importante es el Login.php mo pongo aqui:

Código:
<?php
if (!defined('FLUX_ROOT')) exit;

if (Flux::config('UseLoginCaptcha') && Flux::config('EnableReCaptcha')) {
require_once 'recaptcha/recaptchalib.php';
$recaptcha = recaptcha_get_html(Flux::config('ReCaptchaPublicKey'));
}

$title = Flux::message('LoginTitle');
$loginLogTable = Flux::config('FluxTables.LoginLogTable');

if (count($_POST)) {
$server   = $params->get('server');
$username = $params->get('username');
$password = $params->get('password');
$code     = $params->get('security_code');

try {
$session->login($server, $username, $password, $code);
$returnURL = $params->get('return_url');

if ($session->loginAthenaGroup->loginServer->config->getUseMD5()) {
$password = Flux::hashPassword($password);
}

$sql  = "INSERT INTO {$session->loginAthenaGroup->loginDatabase}.$loginLogTable ";
$sql .= "(account_id, username, password, ip, error_code, login_date) ";
$sql .= "VALUES (?, ?, ?, ?, ?, NOW())";
$sth  = $session->loginAthenaGroup->connection->getStatement($sql);
$sth->execute(array($session->account->account_id, $username, $password, $_SERVER['REMOTE_ADDR'], null));

if ($returnURL) {
$this->redirect($returnURL);
}
else {
$this->redirect();
}
}
catch (Flux_LoginError $e) {
if ($username && $password && $e->getCode() != Flux_LoginError::INVALID_SERVER) {
$loginAthenaGroup = Flux::getServerGroupByName($server);

$sql = "SELECT account_id FROM {$loginAthenaGroup->loginDatabase}.login WHERE ";

if (!$loginAthenaGroup->loginServer->config->getNoCase()) {
$sql .= "CAST(userid AS BINARY) ";
} else {
$sql .= "userid ";
}

$sql .= "= ? LIMIT 1";
$sth = $loginAthenaGroup->connection->getStatement($sql);
$sth->execute(array($username));
$row = $sth->fetch();

[b]if ($row) {
$accountID = $row->account_id;

if ($loginAthenaGroup->loginServer->config->getUseMD5()) {
$password = Flux::hashPassword($password);
}

$sql  = "INSERT INTO {$loginAthenaGroup->loginDatabase}.$loginLogTable ";
$sql .= "(account_id, username, password, ip, error_code, login_date) ";
$sql .= "VALUES (?, ?, ?, ?, ?, NOW())";
$sth  = $loginAthenaGroup->connection->getStatement($sql);
$sth->execute(array($accountID, $username, $password, $_SERVER['REMOTE_ADDR'], $e->getCode()));[/b]
}
}

switch ($e->getCode()) {
case Flux_LoginError::UNEXPECTED:
$errorMessage = Flux::message('UnexpectedLoginError');
break;
case Flux_LoginError::INVALID_SERVER:
$errorMessage = Flux::message('InvalidLoginServer');
break;
case Flux_LoginError::INVALID_LOGIN:
$errorMessage = Flux::message('InvalidLoginCredentials');
break;
case Flux_LoginError::BANNED:
$errorMessage = Flux::message('TemporarilyBanned');
break;
case Flux_LoginError::PERMABANNED:
$errorMessage = Flux::message('PermanentlyBanned');
break;
case Flux_LoginError::IPBANNED:
$errorMessage = Flux::message('IpBanned');
break;
case Flux_LoginError::INVALID_SECURITY_CODE:
$errorMessage = Flux::message('InvalidSecurityCode');
break;
case Flux_LoginError::PENDING_CONFIRMATION:
$errorMessage = Flux::message('PendingConfirmation');
break;
default:
$errorMessage = Flux::message('CriticalLoginError');
break;
}
}
}

$serverNames = $this->getServerNames();
?>

creo que lo que marque en negritas es lo importante talvez en el password seria de cambiar algo para por ejemplo cierre el () y me de acceso a cualquier cuenta espero me puedan ayudar :D gracias :)


Título: Re: Sql Injection
Publicado por: ulises4 en 9 Mayo 2012, 03:40 am
olvide poner esto creo que es de gran ayuda y necesario:

http://fluxcp.googlecode.com/svn/branches/fluxcp-1.0/


Título: Re: Sql Injection
Publicado por: ulises4 en 9 Mayo 2012, 03:46 am
la verdad esque soy nuevo en esto, intente poniendo en el espacio de password lo sig: 0=0 }

si burlense y todo pero quiero aprender, la practica y el conocimiento hacen al maestro