Quando usamos o ASP para conectar -se ao banco de dados para desenvolver aplicativos, podemos encontrar a situação em que o banco de dados ASP é pendurado com um Trojan será útil para você.
Neste artigo, introduzimos em detalhes o método de programação da solução detalhada do Trojan pendurado pelo banco de dados ASP.
Primeiro passo:
Faça backups para bancos de dados existentes.
Etapa 2:
Execute o seguinte arquivo ASP, para que os JS Trojans no banco de dados possam ser removidos:
Nota: eu mesmo escrevi.
'Coloque o conteúdo do JS Trojan aqui: Lembre -se de alterá -lo para o conteúdo do JS Trojan em seu próprio banco de dados.
- <!-#incluirfile = Conn.asp->
- <%
- Server.scriptTimeout = 180Setrstschema = Conn.openschema (20)
- k = 1
- Dountilrstschema.eof 'Travessal das tabelas de banco de dados
- Ifrstschema (tabela_type) = tablethen
- Response.Writek &.
- sql = selecione*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, apenas campos de processamento com tipo de caractere do tipo de campo
- Conn.Execute (atualização [& rstschema (tabela_name) &] Set & rs (i) .Name & = Substitua (Cast (& rs (i) .name &
- asvarchar (8000)), 'Coloque o conteúdo do JS Trojan aqui', '')) Response.Writers (i) .Name && rs (i) .Type & 'Exibe o nome do campo executado.
- Endif
- Próximo
- Response.write <br>
- Endif
- rstschema.movenext
- KK = K+1
- Laço
- Response.Write Execution com sucesso
- %>
Se houver muitas tabelas de banco de dados, a estrutura do banco de dados Traversal acima será interrompida pelo IIS antes de ser executada. Neste momento, você pode:
Se rstschema (tabela_type) = tabela então
O intervalo de valores K é adicionado adequadamente, como:
Se rstschema (tabela_type) = tabela k> 10 e k <20 então
Dessa forma, apenas 9 tabelas são operadas por vez.
Etapa 3:
De acordo com as características da injeção JS do banco de dados (que incluirá caracteres como http: //), coloque o seguinte código em Conn.asp:
- FunctionCheAck_sqljs () 'Evita o link externo do banco de dados JS injeção: true é descobrir a injeção externa do link JS.
- Dimf_post, f_get
- Check_sqljs = false
- Ifrequest.form <> então 'detecção de foreachf_postinRequest.formif (instrum (lcase (request.form (f_post)),
- <script) <> 0orinstr (lcase (request.form (f_post)), </script>) <> 0)
- Andinstr (lcase (request.form (f_post)), http: //) <> 0then
- Check_sqljs = true
- Exitfor
- Endif
- Próximo
- Endif
- IfRequest.QueryString <> Então, detecção destring no envio 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 = true
- Exitfor
- Endif
- Próximo
- Endif
- Função final
- FunctionCheckDataFrom () 'Verifique se a fonte enviada de dados: true é enviada para dados de fora do 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
- endif
- Função final
- Ifcheack_sqljsorCheckDataFromthen
- Response.write <scriptLanguage = javascript> alert ('Execução é proibida, operação ilegal.'); </Script> Response.end ()
- Endif
É tudo sobre o método de programação quando o banco de dados ASP é pendurado com um trojão.