Saya yakin banyak orang mengalami peretasan database. Di sini, saya akan berbicara tentang bagaimana saya menghadapinya.
Langkah pertama: Buat cadangan database Anda yang ada.
Langkah kedua:
Jalankan file ASP berikut untuk menghapus Trojan JS di database:
Catatan: Saya sendiri yang menulis conn.asp.
kode program
'Letakkan konten JS Trojan di sini: Harap ingat untuk mengubahnya ke konten JS Trojan di database Anda.
<!--#include file="conn.asp"-->
<%
Server.ScriptTimeOut=180
Setel rstSchema = samb.OpenSchema(20)
k=1
Lakukan Sampai rstSchema.EOF 'Melintasi tabel database
Jika rstSchema("TABLE_TYPE")="TABLE" Lalu
respon.write K&".<font color=red><b>"&rstSchema("TABLE_NAME") & "</b></font>:" 'Tampilkan nama tabel
Setel rs=Server.CreateObject("ADODB.Recordset")
sql="pilih * dari [" & rstSchema("TABLE_NAME")&"]"
rs.open sql,sambungan,1,3
Untuk i=0 hingga rs.fields.count-1 'Melintasi bidang dalam tabel
Jika int(rs(i).Type)=129 atau int(rs(i).Type)=130 atau int(rs(i).Type)=200 atau int(rs(i).Type)=201 atau int (rs(i).Type)=202 atau int(rs(i).Type)=203 Kemudian hanya memproses bidang yang tipe bidangnya adalah tipe karakter
conn.execute("update ["&rstSchema("TABLE_NAME")&"] setel "&rs(i).name&" =replace(cast("&rs(i).name&" sebagai varchar(8000)),'Letakkan di sini JS Konten Trojan','')")
respon.write rs(i).name &" "&rs(i).Type &" "'Menampilkan nama field yang dieksekusi.
Akhiri Jika
Berikutnya
respon.tulis "<br>"
Akhiri Jika
Skema pertama.PindahBerikutnya
k=k+1
Lingkaran
respon.Tulis "Eksekusi berhasil"
%>
Jika terdapat banyak tabel database, traversal struktur database di atas akan dihentikan oleh IIS sebelum selesai. Saat ini Anda bisa
kode program
Jika rstSchema("TABLE_TYPE")="TABLE" Lalu
Tambahkan rentang nilai k dengan tepat, seperti:
kode program
Jika rstSchema("TABLE_TYPE")="TABLE" k>10 dan k<20 Kemudian
Dalam hal ini, hanya 9 meja yang akan dioperasikan dalam satu waktu.
Langkah ketiga:
Menurut karakteristik injeksi JS database (yang akan menyertakan karakter seperti <script, </script> dan http://),
Masukkan kode berikut di conn.asp:
kode program
Fungsi Cheack_Sqljs()'Mencegah injeksi JS dari tautan eksternal dalam database: true menunjukkan injeksi JS dari tautan eksternal ditemukan.
Redupkan F_Post,F_Get
Cheack_Sqljs=Salah
Jika Request.Form<>"" Lalu' Deteksi saat formulir diserahkan
Untuk Setiap F_Post Di Request.Form
Jika (Instr(LCase(Request.Form(F_Post)),"<script")<>0 atau Instr(LCase(Request.Form(F_Post)),"</script>")<>0) dan Instr(LCase (Permintaan.Form(F_Post))," http://")<>0 Lalu
Check_Sqljs=Benar
Keluar Untuk
Akhiri Jika
Berikutnya
Akhiri Jika
Jika Request.QueryString<>"" Lalu deteksi QueryString saat pengiriman
Untuk Setiap F_Dapatkan Di Permintaan.QueryString
Jika (Instr(LCase(Request.Form(F_Get)),"<script")<>0 atau Instr(LCase(Request.Form(F_Get)),"</script>")<>0) dan Instr(LCase (Permintaan.Form(F_Get))," http://")<>0 Lalu
Check_Sqljs=Benar
Keluar Untuk
Akhiri Jika
Berikutnya
Akhiri Jika
Fungsi Akhir
Fungsi CheckDataFrom()'Periksa sumber data yang dikirimkan: Benar artinya data yang dikirimkan dari luar situs
CheckDataFrom=Benar
server_v1=Cstr(Permintaan.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Permintaan.ServerVariables("SERVER_NAME"))
jika pertengahan(server_v1,8,len(server_v2))<>server_v2 maka
CheckDataFrom=Salah
berakhir jika
Fungsi Akhir
Jika Cheack_Sqljs atau CheckDataFrom Kemudian
Response.Write "<Bahasa Skrip=JavaScript>alert('Eksekusi dilarang, operasi ilegal.');</Script>"
Respon.Akhir()
Akhiri Jika