SQLi Bypasseando el firewall y pasando el examen by arthusu

Páginas: 6 (1274 palabras) Publicado: 7 de marzo de 2015
SQLi Bypasseando el firewall y pasando
el examen!
Bueno amigos este tutorial lo he creado para mi amigo Mr.Pack para su comunidad
http://r00tc0d3rs.org/ y para mi blog http://www.arthusu.blogspot.mx/ cualquier comentario es
bienvenido...

Pequeño relato
Bueno empecemos con un pequeño relato xDDD :P
Estaba navegando por mi twitter y me encuentro con una publicacion de Roberto Salgado:

Donde vieneun reto SQLi el cual es el siguiente:
http://ex.wargame.vn:8080/study/
Ahi elegi el reto en modo estudiante, pero lo mejor es que venia el codigo en PHP para poder
entender todo el tutorial que llevare a cabo :3
Bueno el codigo era el siguiente:

List of students who passed the sql injection exam


require_once("conn.php");
$id = $_GET['student'];
if (intval($id)==0)
$q="SELECT * FROMscore";
else {
$id = mysql_real_escape_string($id);
if (preg_match("/ord|ascii|char|0x|like|table|column|sleep|ben
ch|[\+\-\*\/><=#]/i",$id))
die("Attack detected");
$q = "SELECT * FROM score WHERE id=$id";
}
$q.=" having score.point>5";
$result = mysql_query($q);
if (!$result)
die("

error in query

$q");
echo "Count: ",mysql_num_rows($result);

echo "student_idPoint (/10)<
/tr>";
while ($o=mysql_fetch_object($result)) {
// yeah normalized to 10 point system...
$o->point = intval($o->point)>10?10:intval($o->point);
$o->id = intval($o->id);
echo "";
if ($o->id<=30)
echo "id."";
else
echo "error id"; // I don't have that many studen
t
echo "".$o->point."";
echo "";
}
echo"";
?>
Tal codigo se puede conseguir desde: http://ex.wargame.vn:8080/study/student.php.htm
la misma pagina del reto....

Explicando lo que hace el codigo
Y bueno el reto consiste en pasar un examen de SQLi el cual tienes que bypassear, viendo el
codigo podemos hacerlo de manera facil :D, bueno entonces explico lo que hace el codigo es lo
siguiente:
Primero incluye un archivo que tiene lascredenciales de la conexión, luego tenemos la variable
que es vulnerable que se llama $id que contiene un get hacia student, luego hacemos una consulta
donde si id=0 o nada nos devolveria todos los datos en una tabla... pero en caso de que el id sea
correcto entonces le pasa la funcion mysql_real_escape_string() que escapa los siguientes
caracteres:
\x00 ,\n ,\r ,\ ,' ," ,\x1a
esto no quiere decirque no sea vulnerable a una inyeccion sql ya que para ello tambien
deberiamos hacer uso de la funcion stripslashes() según lo indica PHP en su documentacion.
Despues viene lo interesante que seria las expresiones regulares y el WAF(Web application
firewall) en si... en este caso lo que hace es detectarnos si en la variable $id que es el Student si se
encuentra alguna de estas palabras:
ord,ascii,char,0x,like,table,column,sleep,bench,+,-,*,/,>,<,=,#
si se encuentra cualquiera de estas ordenes en la url sean minusculas o mayusculas terminaria el
script y nos mandaria un mensaje diciendo:
Attack Dettected (Ataque detectado)
Pero si no es asi entonces selecciona todos los datos de la tabla score donde id=$id luego le agrega a
la consulta que nos muestre solo los valores que tengan un valormayor a 5 de calificacion o

puntuacion :)
Despues hace la peticion y la guarda en la variable result, si no se completo la consulta entonces
muestra un mensaje diciendo:
Error in query y aun lado la consulta....
Pero si se completa la consulta cuenta el numero de filas y lo muestra, luego en una tabla muestra el
id del estudiante y la puntuacion o calificacion, aquí viene algo importante almostrar los valores
solo acepta valores enteros, es decir, convierte cualquier cadena a 0 y cualquier decimal a
entero.... entonces solo muestra valores enteros.... y el id no puede ser un valor mayor a 30 sino
mostraria un mensaje diciendo: error id
Siendo explicado el codigo empezaremos nuestra inyeccion :3

Inyectando!
Bueno ahora que sabemos como funciona el codigo que es lo que filtra podemos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Examen Pasado
  • Planificador de Bodas Paso a Paso by EntreNovias
  • Examen 2 Ccna4 By Ale
  • Como pasar un examen
  • examen biquimica pasados
  • Pasos Para Examen Unico
  • Sqli
  • estratejias para pasar un examen matematico

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS