Ctrl+Alt+Supr, blog de Ollydbg
.MODEL Small .STACK 100h .DATA db msg 'Hello, world!$' .CODE start: mov ah, 09h lea dx, msg ; or mov dx, offset msg int 21h mov ax,4C00h int 21h end start
Desde hace algún tiempo, algunos 'listos' están usando mi "contador para el día D" del Diablo 3 (que podéis ver en este mismo blog en los bloques laterales) sin pedir ni siquiera permiso.
No me habría importado para nada que lo usasen, pero por lo menos "pide permiso alma de cántaro". Y lo que más de "fastidia" (por no decir jode) es que además se atribuyen la autoría de dicho contador.
En fin, visto el panorama he decidido trastear con la configuración del servidor donde está alojada la aplicación que genera el contador del Diablo 3 para intentar pararles los pies a semejantes tontolabas (es que no tienen otro nombre) seguramente con la cara llena de acné y como única meta en sus cortas vidas de beneficiarse a la Jenny o ponerse ciegos de chocolate (y no precisamente Schuchart).
A todo este rollo se le conoce como "hotlinking".
El hotlinking es una maniobra bastante poco ética, por la cual, en un determinado sitio se muestran imágenes que están en otro servidor, o en otras palabras:
No se si lo sabréis, pero al igual que en muchas tarifas de móviles, cuando llegas a una determinada cantidad de MB descargados, pongamos 500 MB, o bien te tarifican los megas adicionales más caro o por el contrario tu velocidad de descarga baja muchisimo (64 KB, o 128 KB a lo sumo)
Bueno, pues aquí pasa algo parecido. Los hostings tienen un concepto llamado "Tasa de transferencia". Pongamos de 5 GB al mes.
Esto quiere decir, que solo puedes "servir" 5 GB de información al mes.
Si quieres más tasa de transferencia, pues paga más.
¿Y que ocurre cuando alcanzas dicha tasa de transferencia?. Pues sencillamente que ya no puedes "servir" más información, o lo que es lo mismo, tu sitio web queda totalmente "off-line".
Retomando el ejemplo anterior, ¿Cómo pensáis que estará el web-admin de www.hormiguita.com, sabiendo que www.voydelisto.com le está haciendo "servir" cantidades ingentes de datos?
Ya os lo digo yo, dando botes de alegría seguro que no :(
Bueno, al lio.
Lo que haremos es escribir una regla muy simple donde básicamente todas aquellas imagenes que sirve el servidor (valga la redundancia) solamente las servirá a las direcciones que nos interesen. Si aquella imagen se llama desde una dirección que no está en la regla, se muestra otra imagen.
Pues bien, al acceder a nuestro IIS tendremos que usar el URL Rewrite:

(Haz click para agrandar la imagen)
A continuación, añadiremos una nueva regla mediante la opción Add Rule(s)...
Se mostrará una ventana tal que así:

(Haz click para agrandar la imagen)
Escogeremos la opción por defecto, Blank rule y pulsaremos en el botón Aceptar.
Ahora vamos a definir la regla.
Lo primer es darle un nombre, por ejemplo: hotlink rule
Request URL: Matches the Pattern
Using: Regular Expressions
Pattern: .*\.(gif|jpg|png)$
Ignore case: activado
Estos valores indican lo siguiente:
La regla se realizará cuando se cumpla el "patrón", usando para ello expresiones regulares.
(Puede hacerse una regla para que se lleve a cabo cuando no se cumpla el "patrón", pero no es este caso)
El patrón indica que se realizará para cualquier archivo con extensión gif, jpg o png
Además da lo mismo si se llama a la imagen con mayúsculas o minúsculas (de ahí que se active el ignore case)
A continuación entramos dentro del apartado "Conditions" que es donde se va a definir cuando aplicar la regla.
En este caso se han dado de alta 3 condiciones.
Las condiciones son de tipo {HTTP_REFERER} Esto le indica a nuestro servidor "quien esta llamando"
Pulsaremos en el botón Add y añadiremos las condiciones.
En nuestro caso las 3 condiciones son:
Las 3 condiciones son del tipo Does Not Match the Pattern
Esto quiere decir que cuando NO se cumpla ninguna de esas 3 condiciones, se servirá la imagen "mala"
Por último, en Action type seleccionaremos Rewrite
y en Rewrite URL seleccionaremos la imagen que queremos mostrar cuando no se cumpla la regla, en nuestro caso:
/images/hotlink1.gif
Aquí podéis ver toda la secuencia:

(Haz click para agrandar la imagen)
Resumiendo, que cuando se llame a cualquier archivo .gif, .jpg o .png desde una url distinta a las especificadas en las condiciones, en lugar de "servir" dicha imagen, lo que se servirá es la imagen www.hormiguita.com/images/hotlink1.gif
Por lo tanto, si desde www.voydelisto.com hay un post que tiene este código:
[img]www.hormiguita.com/contador.jpg[/img]
No se mostrará la imagen contador.jpg, sino que se mostrará la imagen hotlink1.gif
Bien, vemos si efectivamente funciona nuestra regla.
Vamos por ejemplo al blog de ivanete84
En principio, si inserto la imagen de mi contador del Diablo3 en dicha dirección, no debería mostrarse ya que la dirección del blog de ivanete84 es blogs.gamefilia.com/ivanete84 que no coincide con ninguna condición en nuestra regla....veamos...:

(Haz click para agrandar la imagen)
Y efectivamente, no se muestra la imagen del contador del Diablo3 y si la imagen hotlink1.gif
Bien, por lo menos, algo que hemos ganado :D
Todo este proceso se puede hacer si editamos directamente el archivo web.config de nuestro sitio web, sin necesidad de usar el administrador del IIS. Para ello lo único que deberemos hacer es añadir una sección <rewrite> dentro de la sección <system.webServer>
Aquí un ejemplo:

(Haz click para agrandar la imagen)
Para los servidores que corren bajo un Apache en lugar de realizar la modificación en el web.config, lo que hay que hacer es realizarla en el archivo .htaccess y seria algo como esto:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
Aquí encontraréis una página web que os generará el .htaccess con vuestra propia configuración.
Tags: hotlink, hotlinking, iis, htaccess, robar imagenes, avoid hotlink, evitar hotlink imagenes
Saludos.
mov eax,ollydbg; Int 13h
.MODEL Small .STACK 100h .DATA db msg 'Hello, world!$' .CODE start: mov ah, 09h lea dx, msg ; or mov dx, offset msg int 21h mov ax,4C00h int 21h end start
Nuevos enlaces descargas Tutoriales
1 al 24, MouseOdometerNET, PingScanner y
OllySecrets (1 y 2) (Actualización 05/02/2011)

1 Comentario:
Sublime xD. Echaba en falta
6 de Mayo de 2012 • 23:21 — BtcSublime xD. Echaba en falta un tema de estos jajaj. Ahora la pregunta: IIS es gratuito? Pregunto para montar un "servidor web" de "prueba" en un pc personal.
Yo he visto que en las características de windows se puede activar el núcleo de IIS, pero una vez activado no he visto como lanzarlo, así que estaba en la duda.
Saludos, y 5*