Direkomendasikan: Optimalisasi ASP menggunakan pengikatan data untuk mencapai halaman web dinamis efisiensi tinggi Ikatan data bukanlah konsep baru, dan IE 4.0 telah memberikan dukungan yang kaya untuk itu. Namun, pengikatan data tidak dihargai karena layak, dan banyak pengembang tampaknya lebih bersedia menggunakan metode skrip sisi server. Namun, pada kenyataannya
Tujuan Cracking: Memecahkan Kata Sandi Login Asp Trojan Terenkripsi. Karena tidak ada deskripsi versi di Trojan Horse, saya tidak tahu apa namanya Trojan.
Gagasan retak: Dua jenis: Ganti ciphertext dengan kata sandi yang dienkripsi dan selesaikan kata sandi menggunakan algoritma ciphertext dan enkripsi.
Yang pertama sama sekali bukan celah. Jika Anda tidak bisa mendapatkan kode sumber ASP, maka Anda dapat mengatakan bahwa saya tidak memiliki kesempatan untuk memecahkan kata sandi. Seorang teman dari China mengatakan bahwa ia telah memperoleh izin web, tetapi tidak dapat memodifikasi beranda. Dia menemukan bahwa ada Asp Trojan di dalamnya, tetapi kata sandi dienkripsi. Oke, ada terlalu banyak omong kosong, jadi bersiaplah, penjelasan ini akan cukup lama.
Kode kunci untuk verifikasi kata sandi login Trojan ASP adalah sebagai berikut:
Jika Epass (trim (request.Form (kata sandi))) = q_ux624q P Kemudian response.cookies (kata sandi) = 8811748 ... |
Jelas bahwa fungsi EPASS digunakan untuk mengenkripsi kata sandi input, dan kemudian membandingkan ciphertext yang diperoleh dengan ciphertext asli. Jika Anda memiliki sedikit pemrograman dasar, terutama VB, maka algoritma enkripsi di EPASS akan jelas sekilas. Jika tidak, maka itu tidak masalah. Saya yakin Anda akan mengerti dengan cepat setelah penjelasan saya. Dalam fungsi, variabel yang menyimpan kata sandi lulus. PASS & ZXCVBNM ,./ Sambungkan konten dalam Pass dengan ZXCVBNM ,./ Untuk mendapatkan string baru. Kiri (Pass & Zxcvbnm ,./, 10) mengambil 10 digit teratas. Fungsi Streverse membalikkan urutan string 10-bit yang dihasilkan. Len (pass) mendapatkan panjang kata sandi. Di bawah ini adalah loop. Panjang kata sandi kode ASCII dari setiap bit dalam string yang diperoleh dibulatkan (posisi karakter *1.1), dan kemudian nilai yang dihasilkan dikonversi menjadi karakter dan terhubung kembali. Akhirnya, semua karakter dengan 'di string yang diperoleh diganti dengan B, sehingga ciphertext dihasilkan. Jika kami mengekstrak algoritma enkripsi dan mengganti ciphertext asli dengan ciphertext kami sendiri, kata sandi yang sesuai juga akan menjadi kata sandi Anda. Tetapi saya mengatakan bahwa ini bukan celah yang nyata.
Jika kita mengetik cinta, proses enkripsi adalah sebagai berikut:
| Cinta lovezxcvbnm,./'koneksi lovezxcvbn 'ambil 10 besar NBVCXZEVOL 'Urutan terbalik N 110 (ASCII) -4 (angka digit) int (1 (posisi)*1.1) = 107 Kode 107 ASCII adalah K, dan seterusnya, dan ciphertext terakhir: K`UCY HZTS |
Kita dapat membalikkan kata sandi melalui algoritma ciphertext dan enkripsi, dan mendorongnya dari langkah terakhir algoritma. Langkah terakhir adalah mengganti semua dengan B, apakah perlu untuk mengganti B belakang, jawabannya adalah tidak. Selama kita bisa mendapatkan ciphertext terakhir, ada kemungkinan bahwa kata sandi berbeda. Jika ada 10 bs, maka jumlah kata sandi asli adalah 2 dengan kekuatan 10. Meskipun hanya ada satu kata sandi asli, 1024 kata sandi semuanya benar. Jika Anda ingin memecahkannya dengan sempurna, Anda dapat mencoba menulis semua kombinasi sendiri. Maka langkah ini dapat diabaikan, algoritma di atas sangat jelas.
| Chr (ASC (Mid (Temppass, J, 1))-Templen Int (J*1.1)) |
Kita hanya perlu mengubah dan - untuk sementara waktu.
| Chr (ASC (Mid (Temppass, J, 1)) Templen-Int (J*1.1)))) |
Tapi ada masalah lain. Kami tidak tahu panjang kata sandi sebelumnya, jadi itu tidak masalah. Untungnya, kata sandi antara 1-10 digit dan tidak terlalu lama. Kemudian kita dapat menggunakan loop 1 hingga 10 untuk menemukan semua kata sandi yang mungkin, dan kemudian membalikkan urutan mereka menggunakan fungsi Streverse. Jadi bagaimana kita menentukan kata sandi mana yang kita dapatkan pada akhirnya? Anda dapat memeriksa apakah ada beberapa digit pertama ZxVbnm dan./ setelah kata sandi dikecualikan dari akhir. Maka ini adalah kata sandi yang sebenarnya. Maka jika kata sandi 10 bit, itu akan benar selamanya karena tidak ada koneksi di belakangnya. Jadi kita bisa mendapatkan dua jawaban.
Berikut ini adalah fungsi dekripsi yang saya tulis:
fungsi ccode (kode) untuk templen1 = 1 hingga 10 MMCode = untuk j = 1 hingga 10 mmcode = mmcode chr (ASC (mid (kode, j, 1)) templen1-int (j*1.1)) Berikutnya Ccode = strreverse (mmcode) response.write Password & Templen1 &: & Ccode & Jika mid (ccode, templen1 1,10-templen1) = kiri (zxcvbnm ,./, 10-templen1) dan templen1 <> 10 lalu Hasil = kiri (ccode, Templen1) Berikutnya Response.write Kata Sandi Terakhir: & Hasilnya fungsi akhir |
OK, algoritma mungkin tidak sepenuhnya dikuasai dalam waktu singkat, yang normal. Jadi saya akan melampirkan instruksi dan kode sumber ASP yang dienkripsi dan didekripsi ke paket terkompresi. Tolong ambil kembali dan pelajari dengan cermat. Demikian juga, kata sandi 10 benar -benar benar. Lalu mari kita ambil ciphertext asli di ASP dan lihat apa hasilnya.
Bagikan: Gunakan atribut respons di ASP-- ContentType Saya mengalami masalah seperti itu saat menggunakan ASP untuk membuat halaman web untuk unit tertentu. Dalam sistem MIS sebelumnya dari unit, beberapa file kata disimpan dalam database dalam bentuk aliran byte. Sekarang pengguna meminta saya untuk menggunakan ASP untuk mengambil data file kata ini dari database dan menampilkannya di halaman web.