Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - ulises4

#1
PHP / Sql Injection
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:

<?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 :)