Hola amigos, contaros que desde hace tiempo andaba detrás de un reto hacking en el que se pedía spoofear cierta IP, que era inválida.
Como no podía ser que mi máquina tomase una ip inválida para spoofear, solo cabía esperar que en el servidor se compruebe la ip considerando la cabecera X-FORWARDED-FOR.
El script en el que necesito spoofear mi ip está escrito en PHP, y en este lenguaje muchar veces los programadores comprueban la cabacera X-FORWARDED-FOR, por ejemplo:
El problema radica en que el valor de la cabecera x-forwarded-for puede ser spoofeado si se modifican las cabeceras http que se envían al servidor.
Se podrían construir paquetes personalizados, pero he preferido usar alguna herramienta ya existente para facilitar la tarea (y tardar menos en pasar el reto).
Instalaremos en local (por ejemplo) un proxy, y ponemos este entre nuestro navegador y la puerta de enlace escuchando en algún puerto, después se configura el navegador para que el tráfico de red pase por el proxy en el puerto indicado. En mi caso el proxy que he utilizado es burp suite free edition, aunque también se podría haber hecho con achilles, que es un proxy más modesto y limitado, pero cumple bien su función.
Ejemplo de mi configuración, el puerto que uso es el 8080 al ser el puerto en el que he puesto a escuchar el proxy:
Después de escribir la línea anterior, le damos al botón de forward para enviar los datos al servidor y ver qué pasa:
Como moraleja tenemos que el campo X-forwarded-for es spoofeable por el usuario, y por lo cual se debería de desconfiar de los datos aportados a través de este campo.
Sería más fiable usar (en php):
Así es como se comportan las dos instrucciones ante el ataque:
Como vemos, realizar comprobaciones sobre la cabecera http x-forwarded-for es inseguro.
Un saludo.
Como no podía ser que mi máquina tomase una ip inválida para spoofear, solo cabía esperar que en el servidor se compruebe la ip considerando la cabecera X-FORWARDED-FOR.
El script en el que necesito spoofear mi ip está escrito en PHP, y en este lenguaje muchar veces los programadores comprueban la cabacera X-FORWARDED-FOR, por ejemplo:
$ipString=@getenv("HTTP_X_FORWARDED_FOR");
El problema radica en que el valor de la cabecera x-forwarded-for puede ser spoofeado si se modifican las cabeceras http que se envían al servidor.
Se podrían construir paquetes personalizados, pero he preferido usar alguna herramienta ya existente para facilitar la tarea (y tardar menos en pasar el reto).
Instalaremos en local (por ejemplo) un proxy, y ponemos este entre nuestro navegador y la puerta de enlace escuchando en algún puerto, después se configura el navegador para que el tráfico de red pase por el proxy en el puerto indicado. En mi caso el proxy que he utilizado es burp suite free edition, aunque también se podría haber hecho con achilles, que es un proxy más modesto y limitado, pero cumple bien su función.
Ejemplo de mi configuración, el puerto que uso es el 8080 al ser el puerto en el que he puesto a escuchar el proxy:
Ahora solamente queda, por pasos:
- Configurar el proxy en modo intercepción, para que se encargue de capturar los paquetes destinados a la web en la que queremos spoofear.
- Visitar la web en cuestión.
En mi caso me he construido yo la web en un servidor local, el código está en PHP:
<?php $remote_ip = getenv('HTTP_X_FORWARDED_FOR'); echo $remote_ip; ?>
Ahora deberíamos de tener los datos del paquete que le queremos enviar al servidor, podemos editarlo y enviarlo al servidor o dejarlo como está. Nosotros lo vamos a editar, yo lo voy a hacer desde la pestaña raw, en esta pestaña, nos vamos a la zona donde se encuentra la información que vamos a enviar, y añadimos una línea nueva (cuidado con la primera letra, debe ser mayúscula, a mi no me funciona si la pongo en minúscula):
X-forwarded-for: la.ip.que.quieras
Después de escribir la línea anterior, le damos al botón de forward para enviar los datos al servidor y ver qué pasa:
Decir que además de poder spoofear, se podrían provocar:
- Inyecciones SQL si las ip's fuesen almacenadas y no filtradas.
- Ataques XSS persistentes si la ip se muestra a otros usuarios (por ejemplo un foro, o los comentarios de un periódico).
Como moraleja tenemos que el campo X-forwarded-for es spoofeable por el usuario, y por lo cual se debería de desconfiar de los datos aportados a través de este campo.
Sería más fiable usar (en php):
$_SERVER['REMOTE_ADDR']
Así es como se comportan las dos instrucciones ante el ataque:
Un saludo.
Interesante man. Disculpa, ya descargue el Burp Suite Free Edition, se puede en esta tool realizar X-forwarded-for ciclicos?, es decir, spoffear mi ip tipo: 10.0.1.1 y que vaya incrementando automaticamente a: 10.0.1.2, 10.0.1.3, 10.0.1.4 hasta 10.0.1.255?, es decir un incremento pero ciclico, se puede con Burp Suite y com oseria man? o con otro Modificador de Headers?, espero tu respuesta y gracias denuevo, saludos.
ResponderEliminarBest Places To Bet On Boxing - Mapyro
ResponderEliminarWhere microtouch solo titanium To Bet On Boxing. It's a sports betting wooricasinos.info event in which you bet on the outcome of a game. 출장안마 In the boxing 1xbet app world, each player must decide if or not to herzamanindir