Recomendado: Explicación detallada del objeto FileSystemObject de ASP ¿Existe la unidad especificada? Este ejemplo demuestra cómo usar el método DriveExists para detectar si existe una unidad. El código es el siguiente: HTML Body % setfs = Server.CreateObject (scripting.filesystemObject) ifffs.driveExists (c :) = trueThen respuesta.write (unidad c: existe).
Después de colgar la base de datos, muchas personas no saben cómo lidiar con ella, o el procesamiento está incompleto, lo que resulta en que los troyanos aún aparecen después de que se abre la página web. Este artículo presenta una mejor solución para su referencia.Paso 1 : Realice copias de seguridad para bases de datos existentes.
Paso 2 : Ejecute el siguiente archivo ASP para eliminar los troyanos JS en la base de datos. (Nota: Conn.asp está omitido)
| 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 = 180 Setrstschema = conn.openschema (20) K = 1 Dountilrstschema.eof 'Tablas de base de datos de transferencia 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,3 Fori = 0tors.fields.Count-1 'Viaje los campos en la mesa Ifint (rs (i) .type) = 129OrInt (rs (i) .type) = 130orInt (rs (i) .type) = 200OrInt (rs (i) .type) = 201orInt (rs (i) .type) = 202orInT (rs (i) .type) = solo 203Then ' conn.execute (actualización [& rstschema (table_name) &] set & rs (i) .name & = reemplazar (cast (& rs (i) .name & asvarchar (8000)), 'Pon Contenido de JS Trojan aquí', ''))) Response.writers (i) .name && rs (i) .type & 'Mostrar el nombre de campo ejecutado. Endif Próximo Response.Write <br> Endif rstschema.movenext K = 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:
| Ifrstschema (table_type) = tablek> 10andk <20then |
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 <script, </script> y 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 en el envío del formulario Foreachf_postinRequest.form If (instrer (lcase (request.form (f_post)), <script) <> 0orInstr (lcase (request.form (f_post)), </script>) <> 0) yinstr (lcase (request.form (f_post)), http: //) <> 0then Check_sqljs = verdadero Salir Endif Próximo Endif Ifrequest.queryString <> entonces 'Detección en la presentación de consulta Foreachf_getInRequest.querystring If (instr (lcase (request.form (f_get), <script) <> 0orInstr (lcase (request.form (f_get), </script>) <> 0) yinster (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 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 |
Compartir: Tutorial para interpretar la subrutina ASP Call Los programas ASP pueden llamar a las subrutinas a través de VBScript y otras formas. Llame a una subrutina usando VBScript, Código de muestra: HTML Head %SubvbProc (NUM1, NUM2) Respuesta.Write (NUM1*NUM2) EndSub % /Head Body P Puede llamar a un programa como este: /PP Resultado: %CallvbProc (3,4) % /PP o, así: / /PP Resultado