¿Qué es un ataque iframe?
Un ataque iframe se puede usar para amplificar un DDoS a cualquier página web.
Tan sólo tienes que buscar un script php que consuma bastantes recursos y hacer varios iframes muy pequeños (no visible, de 1x1) para que la persona (o botnets) que visiten la web del atacante cargen la URL, la que está dentro del iframe, tantas veces como iframes añadas (DoS).
Un iframe también se puede usar para ataques CSRF (Cross-site request forgery) .
Un iframe de 1x1 no es visible pero cargado muchas veces puede causar una denegación de servicios.
Código:
<IFRAME SRC="http://www.dominio.com/" WIDTH="1" HEIGHT="1"> </IFRAME>
<IFRAME SRC="http://www.dominio.com/" WIDTH="1" HEIGHT="1"> </IFRAME>
La manera más sencilla de bloquear el ataque es usando javascript:
Código:
<script type="text/javascript">if(top.location != self.location)top.location = self.location;</script>
Si detecta que no es la única ventana, se abre en pantalla completa.
Si atacan tu Apache con unataque iframepuedes mirar los logs del apache para detectar elReferer
ATacante dijo:
83.155.147.165 - - [17/Apr/2006:16:57:25 +0200] "GET / HTTP/1.1" 200 539 "http://piupiu23.100free.com/""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
24.141.160.234 - - [17/Apr/2006:16:57:25 +0200] "GET / HTTP/1.1" 200 539 "http://piupiu23.100free.com/""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
201.244.210.100 - - [17/Apr/2006:16:57:25 +0200] "GET / HTTP/1.1" 200 539 "http://piupiu23.100free.com/""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
81.31.8.118 - - [17/Apr/2006:16:57:25 +0200] "GET / HTTP/1.1" 200 539 "http://piupiu23.100free.com/""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
68.60.213.133 - - [17/Apr/2006:16:57:25 +0200] "GET / HTTP/1.1" 200 539 "http://piupiu23.100free.com/""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"
81.193.26.49 - - [17/Apr/2006:16:57:25 +0200] "GET / HTTP/1.1" 200 539 "http://piupiu23.100free.com/""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
68.191.253.217 - - [17/Apr/2006:16:57:25 +0200] "GET / HTTP/1.1" 200 539 "http://piupiu23.100free.com/""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
82.79.10.44 - - [17/Apr/2006:16:57:25 +0200] "GET / HTTP/1.1" 200 539 "http://piupiu23.100free.com/""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mailinfo [313789]; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
Tenemos muchas ips, muchos navegadores y un sólo denominador común, el HTTPReferer.
Miramos el código fuente del "Referer"
http://piupiu23.100free.com/
Y sorpresa:
Código:
<iframe src=http://foro.elhacker.net/ width="1" height="1" align="center" scrolling="No" id="Resultado2" style=border:2pxdashed#78808C> </iframe></body>
Vamos a bloquearlo.
Usaremos una regla muy sencilla del mod_rewrite del apache, para cuando el referer sea el atacante le muestre un "Forbidden".
Código:
#ataque iframe
<Directory "/www/var/public_html/">
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://()?piupiu23.*$ [OR]
# and so on
RewriteCond %{HTTP_REFERER} ^http://piupiu23.100free.com/
RewriteRule .* - [F,L]
</Directory>
Comprobamos si funciona:
webdijo:
[root@lan root]# curl -e "http://piupiu23.100free.com/"http://foro.elhacker.net
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>403 Forbidden</TITLE>
</HEAD><BODY>
<H1>Forbidden</H1>
You don't have permission to access /
on this server.<P>
</BODY></HTML>
Si te atacan con un programa para hacer DDoS (entre varios) debes mirar el "User-Agent":
Código:
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts; HbTools 4.6.2)"
Aplicas una nueva regla con el mod_rewrite pero mirando el User-Agent "FunWebProducts".
Ahora vamos a ver como bloquear el HTTP Refererr usando el mod_security(un módulo del Apache para aumentar la seguridad del Apache y de los scripts php).
Código:
SecFilterSelective HTTP_Referer|ARGS
"webdelataque.com""deny,nolog,status:403"
Simplemente le decimos que si el Referer es la web del atacante que no lo guarde en el log (si el ataque es muy grande se formaría un log enorme) y le devuelva un código HTTP 403 (Prohibido).
También puedes devolverle el ataque redireccionado sus peticiones hacia el mismo:
Código:
SecFilterSelective HTTP_Referer|ARGS
"webdelataque.com""deny,nolog,redirect:http://www.webdelataque.com"
O bien sacar un molesto Alert en javascript para que se vea obligado a quitar el iframe:
Código:
SecFilterSelective HTTP_Referer|ARGS
"webdelataque.com""deny,nolog,redirect:http://www.tuweb.com/bucle.html"
Y en bucle.html poner:
Código:
<html><head><body></script>while(1) { alert("bad boy!";); }</script></body></html>[/size][/b]
[align=center][img]http://k19.kn3.net/3D621E5C6.jpg[/img][/align]
ATacante dijo: