Mungkin anda pernah mendengar istilah Base64 dalam kasus hacking situs berbasis PHP, dan terutama dalam penggunaan theme dan plugin ilegal (nulled, warez, bajakan) dalam CMS populer seperti WordPress. Sebenarnya apakah itu Base64 dan kenapa bisa dijadikan faktor penyebab dibobolnya keamanan website?
Jadi Base64 ini adalah sistem penyandian (encoding) dari data biner menjadi teks, dan memang ditujukan untuk sistem transfer data biner melalui medium teks. Dengan menggunakan Base64 juga menjamin tidak terjadinya modifikasi yang akan merubah datanya selama proses transportasi.
Base64 sendiri terdiri dari 64 karakter yaitu dari A-Z, a-z, 0-9 dan 2 karakter sisanya yang biasa digunakan adalah + dan /. Anda bisa menggunakan berbagai macam tool online untuk melakukan proses konversi dari dan ke Base64 dengan mudah.
Berikut adalah tabel konversi Base64:
Nilai | Karakter | Nilai | Karakter | Nilai | Karakter | Nilai | Karakter | |||
---|---|---|---|---|---|---|---|---|---|---|
0 | A | 16 | Q | 32 | g | 48 | w | |||
1 | B | 17 | R | 33 | h | 49 | x | |||
2 | C | 18 | S | 34 | i | 50 | y | |||
3 | D | 19 | T | 35 | j | 51 | z | |||
4 | E | 20 | U | 36 | k | 52 | 0 | |||
5 | F | 21 | V | 37 | l | 53 | 1 | |||
6 | G | 22 | W | 38 | m | 54 | 2 | |||
7 | H | 23 | X | 39 | n | 55 | 3 | |||
8 | I | 24 | Y | 40 | o | 56 | 4 | |||
9 | J | 25 | Z | 41 | p | 57 | 5 | |||
10 | K | 26 | a | 42 | q | 58 | 6 | |||
11 | L | 27 | b | 43 | r | 59 | 7 | |||
12 | M | 28 | c | 44 | s | 60 | 8 | |||
13 | N | 29 | d | 45 | t | 61 | 9 | |||
14 | O | 30 | e | 46 | u | 62 | + | |||
15 | P | 31 | f | 47 | v | 63 | / |
Misal dengan contoh teks “uTekno – Apa itu Base64?” kalau dikonversikan menjadi Base64 akan menjadi “dVRla25vIC0gQXBhIGl0dSBCYXNlNjQ/”, tanpa tanda kutip.
Nah… kembali ke awal cerita kenapa penyandian ini bisa mengancam keamanan situs. Berdasarkan informasi singkat mengenai Base64 tampak masalahnya karena format penulisan ini cukup rumit dan kebiasaan orang yang asal menginstall script tanpa mengecek apa isinya jelas saja akan dilewati. Pada umumnya barisan teks tersebut akan dianggap sebagai bagian dari kode program, padahal PHP dengan perintah base64_decode( $string ) mampu membaca kode dalam format ini dengan mudah. Dan setelah itu menjalankan teks hasil konversinya. Inilah yang membuatnya berbahaya dan menjadi salah satu celah penyisipan script jahat di website anda.