Cara Reset Password CMS Yang Di-Hash
Kali ini saya akan sharing mengenai cara me-reset password CMS ( Content Management System ) yang password-nya di-hashing menggunakan MD5 dan SHA, atau istilahnya double hashing. Rata rata atau boleh dibilang semua data password CMS pasti di-hashing minimal menggunakan MD5. Kali ini saya tidak akan membahas CMS yang terkenal seperti Wordpress, Jomlaa , Serendipity dan sebagainya karena sudah pasti banyak sekali dibahas di Internet. Saya akan membahas CMS jadi jadian yang tidak tahu merk-nya apa. Tetapi inti dari tulisan ini yaitu ide yang saya gunakan bisa digunakan di kasus yang lain dengan pola yang sama.
Awalnya saya mendapat tugas dadakan dari kantor yaitu membuat QR Code untuk menu digital, otomatis yang pertama dibuat adalah link url yang berisi menu. Web yang pertama karena masih fresh sudah menggunakan CMS yang kekinian yaitu Wordpress yang tentu saja saya lebih familiar, setelah saya selesai upload gambar daftar menu dan terbentuk link url-nya akhirnya jadi deh QR Code-nya Untuk menu digital yang tulisan-nya saya buat di sini.
Kemudian hari kedua dapat tugas yang sama untuk membuat QR Code untuk menu digital juga di restoran yang lama dan tentu saja umur website-nya lebih tua dari yang pertama. Masalahnya adalah orang yang mengurusi website tersebut sudah resign, sehingga tidak ada yang tahu password login ke CMS-nya. Untungnya cPanel-nya masih ada mengurusi sehingga saya masih bisa melihat struktur file html dan database-nya. Setelah saya pelajari sebentar, web-nya tidak menggunakan CMS yang terkenal tapi CMS tidak jelas darimana asalnya, kemudian password-nya disimpan dengan teknik double hashing, hashing yang pertama menggunakan MD5 ditambah "garam" alias Salt agar lebih kuat, kemudian di-hashing lagi menggunakan SHA1.
password hash |
Karena saya diberi waktu hanya 1 hari tidak akan mengotak atik enkripsi karena menghabiskan waktu. Akhirnya saya menggunakan “ilmu hitam”, yaitu dengan merubah logika source program php pada saat event login, caranya yaitu merubah logika sama dengan ( == ) dengan logika tidak sama dengan (!==).
awalnya :
$row->password == $password
dirubah menjadi
$row->password !== $password
Hal ini akan menyebabkan apapun password yang anda inputkan walaupun SALAH maka dianggap BENAR. Asyik bukan? Ya asyik sekali, artinya meskipun anda menekan keyboard dengan siku tangan untuk memasukan password dan kemudian menekan Enter, maka anda sudah pasti bisa masuk ke main menu CMS-nya.
Masalah kedua muncul yaitu bagian CMS-nya, CMS-nya ternyata CMS jadi jadian yaitu levelnya antara manual coding dan CMS alias "CMS Banci". Setelah saya pelajari sebentar dan menyiapkan gambar menu yang akan diupload, akhirnya menu pun bisa diupload dengan sedikit coding HTML murni. Dan hasilnya ada di bawah ini, silakan scan QR Code-nya untuk melihat menunya.
CMS Main Menu |
Setelah gambar menu sudah ter-upload lalu saya me-reset password-nya dan merubah kembali logika program pada file php di menu login dari “!==” kembali menjadi “==”.
Semoga sharingnya bermanfaat
related links :