Lorsque nous utilisons ASP pour se connecter à la base de données pour développer des applications, nous pouvons rencontrer la situation où la base de données ASP est accrochée avec un trojan. vous sera utile.
Dans cet article, nous introduisons en détail la méthode de programmation de la solution détaillée de la base de données ASP.
premier pas:
Faites des sauvegardes pour les bases de données existantes.
Étape 2:
Exécutez le fichier ASP suivant, afin que les chevaux de chevaux JS dans la base de données puissent être supprimés:
Remarque: je l'ai écrit moi-même.
«Mettez le contenu JS Trojan ici: n'oubliez pas de le changer en contenu JS Trojan dans votre propre base de données.
- <! - # includeFile = Conn.asp ->
- <%
- Server.scriptTimeout = 180SetRrstSchema = Conn.OpenSchema (20)
- k = 1
- Dounilrstschema.eof 'Traversion des tables de base de données
- IfrstSchema (table_type) = TableThen
- Response.Writek &. <FontColor = Red> <b> & rstSchema (Table_Name) & </b> </font>: 'Afficher le nom de la table setrs = server.createObject (adodb.recordSet)
- sql = select * from [& rstSchema (table_name) &]
- Rs.OpenSQL, Conn, 1,3Fori = 0Tors.Fields.Count-1'Transfer Field IFInt (RS (I) .Type) = 129
- orint (rs (i) .ype) = 130orint (rs (i) .ype) = 200ORINT (RS (i) .ype) = 201Orint (rs (i) .type) = 202ORINT (RS (i) .Type) = 203THEN 'NIDS DE TRAITEMENT avec le type de caractères de type champ
- Conn.execute (Update [& rstSchema (table_name) &] set & rs (i) .name & = remplacer (Cast (& rs (i) .name &
- asvarchar (8000)), 'Put JS Trojan Content Here', '')) Response.Writers (i) .name && rs (i) .type & 'affiche le nom de champ exécuté.
- Endire
- Suivant
- réponse.WRITE <br>
- Endire
- RSTSCHEMA.MOVENEXT
- kk = k + 1
- Boucle
- Réponse. Écrivez l'exécution avec succès
- %>
S'il existe de nombreuses tables de base de données, la structure de base de données de traversée ci-dessus sera arrêtée par IIS avant son exécution. Pour le moment, vous pouvez:
Si rstSchema (table_type) = table alors
La plage de valeurs k est ajoutée de manière appropriée, telle que:
Si rstSchema (table_type) = table k> 10 et k <20 alors
De cette façon, seules 9 tables sont exploitées à la fois.
Étape 3:
Selon les caractéristiques de l'injection JS de la base de données (qui comprendra des caractères comme http: //), mettez le code suivant dans Conn.asp:
- FunctionCheaCK_SQLJS () 'Empêche la base de données Lien externe JS Injection: Vrai est de découvrir l'injection JS de liaison externe.
- Dimf_post, f_get
- Check_sqljs = false
- Ifrequest.form <> puis 'détection de foreachf_postinRequest.formIF (instr (lcase (request.form (f_post)),
- <script) <> 0orinstr (lCase (request.form (f_post)), </cript>) <> 0)
- andInstr (lCase (request.form (f_post)), http: //) <> 0THEN
- Check_sqljs = true
- Sortie
- Endire
- Suivant
- Endire
- IfRequest.Querystring <> alors'Qquerystring détection sur la soumission foreachf_getInRequest.Querystring
- If (instr (lCase (request.form (f_get)), <script) <> 0orinstr (lCase (request.form (f_get)), </cript>) <> 0)
- andInstr (lCase (request.form (f_get)), http: //) <> 0THEN
- Check_sqljs = true
- Sortie
- Endire
- Suivant
- Endire
- Finition de fin
- FonctionCHECKDATAFROM () 'Vérifiez les données Source soumise: Vrai est soumis pour les données de l'extérieur du site
- 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 = false
- endire
- Finition de fin
- IFCHEACK_SQLJSORCHECKDATAFROMTHEN
- Response.Write <ScriptLanguage = JavaScript> alert ('L'exécution est interdite, opération illégale.'); </cript> Response.end ()
- Endire
Il s'agit de la méthode de programmation lorsque la base de données ASP est accrochée avec un trojan.