Karena pencegahan kita dilihat dari sudut pandang penyusup, pertama-tama kita perlu mengetahui bagaimana penyusup menyerang. Saat ini, metode intrusi web yang lebih populer adalah pertama-tama mendapatkan webshell situs web dengan mencari kerentanan program, dan kemudian menemukan metode yang dapat dieksploitasi untuk meningkatkan hak istimewa berdasarkan konfigurasi server, dan kemudian mendapatkan izin server. Oleh karena itu, ini adalah metode yang efektif untuk bekerja sama dengan server untuk menyiapkan pencegahan webshell.
1. Mencegah database diunduh secara ilegal
Harus dikatakan bahwa administrator dengan sedikit keamanan jaringan akan mengubah jalur database default dari program situs web yang diunduh dari Internet. Tentu saja, beberapa administrator sangat ceroboh, mereka mendapatkan program dan menginstalnya langsung di server mereka sendiri, bahkan tanpa menghapus file deskripsi, apalagi mengubah jalur database. Dengan cara ini, peretas dapat langsung mengunduh program sumber situs web dari situs kode sumber, kemudian mengujinya secara lokal untuk menemukan basis data default, dan kemudian mengunduh basis data untuk membaca informasi pengguna dan data di dalamnya (biasanya dienkripsi MD5) untuk menemukan manajemen masuk dan masuk untuk mendapatkan webshell. Situasi lainnya adalah jalur ke database situs web terekspos karena kesalahan program. Jadi bagaimana mencegah hal ini terjadi? Seperti yang ditunjukkan di bawah ini:
Buka IIS dan tambahkan pemetaan MDB, sehingga mdb dapat diurai menjadi file lain yang tidak dapat diunduh: "IIS Properties" - "Home Directory" - "Configuration" - "Mapping" - "Application Extension" dan tambahkan file .mdb untuk menerapkan parsing. Anda dapat memilih sendiri file yang digunakan untuk parsing, selama file database tidak dapat diakses.
Kelebihannya adalah: 1. File database dalam format akhiran mdb pasti tidak akan diunduh; 2. Berfungsi untuk semua file mdb di server, yang sangat berguna bagi administrator host virtual.
2. Cegah pengunggahan
Untuk konfigurasi di atas, jika menggunakan database MSSQL, selama masih ada titik injeksi, Anda masih bisa menggunakan alat injeksi untuk menebak databasenya. Jika tidak ada otentikasi sama sekali saat mengupload file, kita bisa langsung mengupload trojan asp untuk mendapatkan webshell server.
Mengenai pengunggahan, dapat kami rangkum sebagai berikut: Direktori yang dapat diunggah tidak diberikan izin eksekusi, dan direktori yang dapat dijalankan tidak diberikan izin pengunggahan. Program web dijalankan oleh pengguna IIS. Kita hanya perlu memberikan izin menulis kepada pengguna IIS ke direktori unggahan tertentu, dan kemudian menghapus izin eksekusi skrip dari direktori ini untuk mencegah penyusup mendapatkan webshell melalui unggahan. Metode konfigurasi: Pertama, di direktori web IIS, buka tab izin dan hanya berikan izin direktori baca dan daftar kepada pengguna IIS, lalu masuk ke direktori tempat file yang diunggah disimpan dan database disimpan, tambahkan izin menulis ke pengguna IIS, dan terakhir Ubah saja "Skrip Murni" menjadi "Tidak Ada" di opsi "Properti"-"Izin Eksekusi" di kedua direktori ini. Lihat gambar di bawah ini:
Satu pengingat terakhir, ketika Anda mengatur izin di atas, Anda harus memperhatikan pengaturan warisan direktori induk. Hindari pengaturan yang sia-sia.
[Potong Halaman]
3. Injeksi MSSQL
Untuk pertahanan database MSSQL, pertama-tama kita harus memulai dengan akun koneksi database. Jangan gunakan akun SA untuk database. Menggunakan akun SA untuk terhubung ke database adalah bencana bagi server. Secara umum, Anda dapat menggunakan akun izin DB_OWNER untuk terhubung ke database. Jika dapat berjalan normal, paling aman menggunakan pengguna publik. Setelah mengatur izin dbo untuk terhubung ke database, penyusup pada dasarnya hanya dapat memperoleh webshell dengan menebak nama pengguna dan kata sandi atau cadangan diferensial. Untuk yang pertama, kita dapat mempertahankannya dengan mengenkripsi dan memodifikasi alamat login default dari latar belakang manajemen . Untuk differential backup, kita mengetahui syaratnya adalah memiliki izin backup dan mengetahui direktori web. Mencari direktori web biasanya dilakukan dengan menelusuri direktori untuk mencari atau langsung membaca registri. Salah satu dari kedua metode ini menggunakan dua prosedur tersimpan yang diperluas xp_regread dan xp_dirtree. Kita hanya perlu menghapus dua penyimpanan tambahan ini. Tentu saja, kita juga dapat menghapus file dll yang terkait secara bersamaan.
Namun jika direktori web terekspos karena kesalahan program, Anda tidak bisa berbuat apa-apa. Jadi kita juga perlu menurunkan izin akun dan tidak dapat menyelesaikan operasi pencadangan. Operasi spesifiknya adalah sebagai berikut: Di properti akun ini - opsi akses basis data, Anda hanya perlu memilih basis data yang sesuai dan memberikan izin DBO. Jangan mengoperasikan basis data lain. Lalu pergi ke database-properties-permissions untuk menghapus izin cadangan dan log cadangan pengguna, sehingga penyusup tidak dapat memperoleh webshell melalui cadangan diferensial.
[Potong Halaman] 3. Injeksi MSSQL
Untuk pertahanan database MSSQL, pertama-tama kita harus memulai dengan akun koneksi database. Jangan gunakan akun SA untuk database. Menggunakan akun SA untuk terhubung ke database adalah bencana bagi server. Secara umum, Anda dapat menggunakan akun izin DB_OWNER untuk terhubung ke database. Jika dapat berjalan normal, paling aman menggunakan pengguna publik. Setelah mengatur izin dbo untuk terhubung ke database, penyusup pada dasarnya hanya dapat memperoleh webshell dengan menebak nama pengguna dan kata sandi atau cadangan diferensial. Untuk yang pertama, kita dapat mempertahankannya dengan mengenkripsi dan memodifikasi alamat login default dari latar belakang manajemen . Untuk differential backup, kita mengetahui syaratnya adalah memiliki izin backup dan mengetahui direktori web. Mencari direktori web biasanya dilakukan dengan menelusuri direktori untuk mencari atau langsung membaca registri. Salah satu dari kedua metode ini menggunakan dua prosedur tersimpan yang diperluas xp_regread dan xp_dirtree. Kita hanya perlu menghapus dua penyimpanan tambahan ini. Tentu saja, kita juga dapat menghapus file dll yang terkait secara bersamaan.
Namun jika direktori web terekspos karena kesalahan program, Anda tidak bisa berbuat apa-apa. Jadi kita juga perlu menurunkan izin akun dan tidak dapat menyelesaikan operasi pencadangan. Operasi spesifiknya adalah sebagai berikut: Di properti akun ini - opsi akses basis data, Anda hanya perlu memilih basis data yang sesuai dan memberikan izin DBO. Jangan mengoperasikan basis data lain. Lalu pergi ke database-properties-permissions untuk menghapus izin cadangan dan log cadangan pengguna, sehingga penyusup tidak dapat memperoleh webshell melalui cadangan diferensial.