Cuando usamos ASP para conectarnos a la base de datos para desarrollar aplicaciones, podemos encontrar la situación en la que la base de datos ASP está colgada con un troyano en este artículo, presentaremos el método de programación cuando la base de datos ASP esté colgada de un troyano. te será útil.
En este artículo, presentamos en detalle el método de programación de la solución detallada del troyano colgado de la base de datos ASP.
Primer paso:
Realizar copias de seguridad para bases de datos existentes.
Paso 2:
Ejecute el siguiente archivo ASP, de modo que se puedan eliminar los troyanos JS en la base de datos:
Nota: lo escribí yo mismo.
Pon el contenido de JS Trojan aquí: recuerde cambiarlo al contenido de JS Trojan en su propia base de datos.
- <!-#includeFile = conn.asp->
- <%
- Server.scriptTimeOut = 180SetRstschema = conn.openschema (20)
- K = 1
- Dountilrstschema.eof 'transversal de tablas de bases de datos
- Ifrstschema (table_type) = Tablethen
- Response.Writek &. <FontColor = Red> <b> & rstschema (table_name) & </b> </font>: 'Mostrar el nombre de la tabla setrs = server.createObject (ADODB.Recordset)
- sql = select*de [& rstschema (table_name) &]
- rs.opensql, Conn, 1,3fori = 0tors.fields.count-1'transfer campo ifint (rs (i) .type) = 129
- ORINT (rs (i) .type) = 130orInt (rs (i) .type) = 200OrInt (rs (i) .type) = 201orInt (rs (i) .type) = 202OrInt (rs (i) .type) = 203 Then 'solo campos de procesamiento con tipo de caracteres de tipo de campo
- conn.execute (actualización [& rstschema (table_name) &] set & rs (i) .name & = reemplazar (Cast (& rs (i) .name &
- Asvarchar (8000)), 'Pon Contenido JS Trojan aquí', '')) Response.Writers (i) .name && rs (i) .Type & 'Muestra el nombre de campo ejecutado.
- Endif
- Próximo
- Response.Write <br>
- Endif
- rstschema.movenext
- KK = K+1
- Bucle
- respuesta. Escribe la ejecución con éxito
- %>
Si hay muchas tablas de bases de datos, IIS detendrá la estructura de la base de datos transversal anterior antes de que se ejecute. En este momento puedes:
Si rstschema (table_type) = tabla entonces entonces
El rango de valores k se agrega adecuadamente, como:
Si rstschema (table_type) = tabla k> 10 y k <20 entonces
De esta manera, solo se operan 9 tablas a la vez.
Paso 3:
De acuerdo con las características de la inyección de la base de datos JS (que incluirá caracteres como http: //), coloque el siguiente código en conn.asp:
- FunctionCheACK_SQLJS () 'Preventa la base de datos Enlace externo JS Inyección: Verdadero es descubrir la inyección de JS de enlace externo.
- Dimf_post, f_get
- Check_sqljs = falso
- IfRequest.Form <> entonces 'Detección de foreachf_postinRequest.formif (instr (lcase (request.form (f_post)),
- <script) <> 0orInstr (lcase (request.form (f_post)), </script>) <> 0)
- AndinstR (lcase (request.form (f_post)), http: //) <> 0then
- Check_sqljs = verdadero
- Salir
- Endif
- Próximo
- Endif
- Ifrequest.queryString <> then'QueryString Detection en el envío foreachf_getInRequest.queryString
- If (instr (lcase (request.form (f_get)), <script) <> 0orInstr (lcase (request.form (f_get)), </script>) <> 0)
- Andinstr (lcase (request.form (f_get)), http: //) <> 0then
- Check_sqljs = verdadero
- Salir
- Endif
- Próximo
- Endif
- Función final
- FunctionCheckDataFrom () 'Verifique los datos enviados Fuente: True se envía para obtener datos desde fuera del sitio
- CheckDataFrom = True
- server_v1 = cstr (request.serverVariAbles (http_referer)) server_v2 = cstr (request.serverVariAbles (server_name)))
- ifmid (server_v1,8, len (server_v2)) <> server_v2then
- CheckDataFrom = falso
- endif
- Función final
- Ifcheack_sqljsorcheckdatafromethen
- Response.write <scriptLanguage = javaScript> Alert ('La ejecución está prohibida, operación ilegal.'); </script> respuesta.end ()
- Endif
Esto se trata del método de programación cuando la base de datos ASP está colgada de un troyano.