Autor Tema: Bypass Sistema de Autentificacion PHP  (Leído 4137 veces)

0 Usuarios y 1 Visitante están viendo este tema.

RootBox

  • **
  • Mensajes: 156
  • Liked: 0
Bypass Sistema de Autentificacion PHP
« : junio 16, 2006, 11:34:34 am »
Buenas usuarios de la cum, tengo un problema, estuve provocando errores en un sitio para revelar donde estaba los archivos que se incluian, entre ellos el de login de los administadores, habia un archivo de copia de seguridad del sistema de autentificacion.. Aki esta el source ke autentifica:
Código: [Seleccionar]
function auth($msg) {
Header("WWW-Authenticate: Basic realm=\"iRedirector Administration\", stale=FALSE");
Header("HTTP/1.0 401 Unauthorized");
admin_error($msg);
}

if (isset($PHP_AUTH_USER)) {
$sql = "SELECT * FROM $mod_tbl WHERE username='$PHP_AUTH_USER'";
$result = $s24_sql->query($sql);
$row = $s24_sql->fetch_array($result);
if ($row[super] == '1') {
$modmember = "1";
$modsetup = "1";
$modblacklist = "1";
$modmail = "1";
$modmoderator = "1";
} else {
$modmember = $row[member];
$modsetup = $row[setup];
$modblacklist = $row[blacklist];
$modmail = $row[mail];
$modmoderator = $row[moderator];
}
$modpass = s24_replace($row[password]);
$modlogin = $row[username];
if (($modlogin != $PHP_AUTH_USER) || empty($PHP_AUTH_USER)) {
auth("User does not exist!");
exit;
}
if (($modpass != $PHP_AUTH_PW) || empty($PHP_AUTH_PW)) {
auth("Wrong password!");
exit;
}
} else {
auth("User does not exist!");
exit;
}

Bueno, para rematar dejenme decirles que esta web tiene addslashes, osea si pongo ', me lo convierten en \'\, entonces no se puede hacer

' or isnull(1/0)/*
SELECT * FROM $mod_tbl WHERE username='\'\ or isnull(1/0)/*'

Ya trate con de saltarme el addslash con:
0xbf27 or isnull(1/0) /*
SELECT * FROM $mod_tbl WHERE username='?' or isnull(1/0)/*'

Yo creo que lo que se necesita es un UNION, pero no soy muy bueno para eso, ojala me peudan ayudar se los agradeceria mucho.
« Última Modificación: agosto 16, 2007, 07:43:22 pm por hkm »

Libro Pesado.

  • ***
  • Mensajes: 85
  • Liked: 0
Re: Bypass Sistema de Autentificacion PHP
« Respuesta #1 : junio 24, 2006, 04:40:24 pm »
¿y las comillas dobles las convierte?

O que tal en el equivalente al apostrofe en hexadecimal %27 ???
Bueno para esto habria que ver si el % tambien lo convierte el slash.
¿El acre amor me ha hinchado de torpores embriagantes?

RootBox

  • **
  • Mensajes: 156
  • Liked: 0
Re: Bypass Sistema de Autentificacion PHP
« Respuesta #2 : junio 25, 2006, 05:33:06 pm »
De nada sirve la comilla doble, la funcin uiliza la comilla simple..

Ademas con urlencoding de %##, no se puede porque eso es decodificado ya sea por el browser o por el servidor por default, lo que puse yo es 0xbf27, represante un valor en una sentencia SQL..

19.5

  • Mensajes: 1
  • Liked: 0
Re: Bypass Sistema de Autentificacion PHP
« Respuesta #3 : julio 01, 2006, 09:59:04 am »
Hey te acordas que el otro día te mencione si encontraba algo te avisaba? pues bien...
Prueba transformando carácteres normales a código ASCII como la A es 65, B es 66, ... osea la A quedaría como CHAR(65). Además hay funciones que te permiten bypasear las comillas como la de concatenación. Prueba también haciendo union select o una expresión que siempre sea verdadera. Nunca está demas generar errores para obtener información util.

Ahora me encuentro estudiando mas a fondo este asunto mira que con sql injection se pueden hacer mas cosas que obtener datos de la DB (para todos).