Untuk melakukan hacking terhadap suatu website, ada banyak
cara yang dapat digunakan. Tulisan berikut akan menjelaskan beberapa langkah
yang umum digunakan, mulai dari tools yang digunakan sampai kepada macam-macam
tekniknya.
1. Memilih Tools untuk Hack Website
• Acunetix Web Vulnerability Scanner (http://www.acunetix.com )
Tools ini memiliki fitur yang cukup lengkap untuk security test, termasuk port
scanner, HTTP sniffer, dan tools untuk melakukan SQL injection secara otomatis.
• Firefox Web Developer (http://chrispederick.com/work/web-developer)
Tools ini adalah addon untuk browser Firefox untuk analisis dan manipulasi
halaman web secara manual.
• HTTrack Website Copier (http://www.httrack.com )
Tools ini berfungsi untuk mirroring website agar dapat kita analisis secara
offline. Mirroring adalah metode mengecek tiap-tiap halaman pada website dan
mendownload halaman yang bisa diakses ke hard disk.
• N-Stalker Web Application Security Scanner (http://www.nstalker.com/eng/products/nstealth)
Tools ini juga cukup lengkap untuk melakukan security testing, termasuk pemecah
password, dan tools untuk mentest loading dari web server.
• WebInspect (http://www.spidynamics.com/products/webi...ndex.html)
Tools ini cukup lengkap untuk melakukan security testing. Di dalamnya termasuk
proxy HTTP, editor HTTP, dan tools SQL injection otomatis.
Selain tools di atas, kita juga bisa bisa menggunakan QualysGuard, LANguard,
atau Metasploit untuk mengetest server dan aplikasi web. Tools ini dapat
digunakan untuk menemukan kelemahan web server yang mungkin tidak dapat
ditemukan oleh tools web scanning dan analisis standar. Kita juga dapat
menggunakan Google untuk mencari informasi sensitif yang mungkin terdapat pada
website.
2. Teknik Hack Website
Menyerang website yang tidak aman melalui Hypertext Transfer Protocol (HTTP)
merupakan hal yang paling sering dilakukan. Banyak serangan terhadap website
hanyalah gangguan kecil dan tidak terlalu berpengaruh pada informasi sensitif
atau availability dari sistem. Namun, beberapa serangan juga dapat berakibat
serius seperti pencurian atau modifikasi informasi berharga.
2.1 Penelusuran Direktori
Penelusuran direktori adalah teknik menelusuri setiap direktori yang terdapat
pada web server. Dengan menelusuri direktori server terkadang dapat ditemukan
file yang berisi informasi sensitif. Untuk melakukan penelusuran direktori bisa
dengan cara-cara berikut ini:
2.1.1 Crawler
Crawl adalah mengumpulkan informasi mengenai apa yang ada di halaman-halaman
web yang bersifat public (dapat diakses). Dengan menggunakan software HTTrack
Website Copier, kita bisa melakukan crawl untuk melihat semua file yang
bersifat publik dan mendownloadnya ke hard disk kita sehingga dapat dibuka
secara offline. Untuk menggunakan HTTrack, caranya pertama klik New Project,
lalu ketikkan nama project, jika sudah tekan next dan ketikkan alamat website
yang ingin didownload. File hasil download tersimpan di direktori c:\My Web
Sites. Lama proses download tergantung dari seberapa besar dan banyak file pada
server dan koneksi internet yang kita gunakan. Selanjutnya kita dapat membuka
folder website yang sudah didownload tadi untuk mengecek apakah terdapat
file-file yang berisi informasi berharga. Jika menemukan file zip namun
diproteksi dengan password, kita bisa gunakan software Advanced Archive
Password Recovery (http://www.elcomsoft.com/archpr.html ) untuk
mendapatkan password file tersebut.
2.1.2 Google
Dengan menggunakan mesin pencari google, kita juga dapat mendapatkan informasi
yang kita inginkan dari internet atau dari website tertentu. Dengan query
tertentu, Google dapat digunakan untuk menampilkan file atau informasi yang
mungkin berharga dari sebuah website. Google juga menggunakan sistem crawl
dalam mengakses file-file yang bersifat publik. Berikut ini beberapa query yang
dapat digunakan untuk mencari informasi tertentu melalui google:
• site:hostname keywords
Query ini akan mencari informasi dari suatu website berdasarkan keyword.
• filetype:file-extension hostname
Query ini akan menampilkan file bertipe spesifik (sesuai dengan yang
dimasukkan, misal .doc, .pdf, .db, .dbf, .zip) dari suatu website yang mungkin
berisi informasi berharga.
Untuk query lainnya bisa dilihat dihttp://www.google.com/intl/en/help/operators.html dan
jika ingin mengetahui lebih lanjut tentang Google Hacking bisa dibuka di alamathttp://johnny.ihackstuff.com/ghdb atau
di http://artkast.yak.net/81. Salah
satu hostname yang layak dimasukkan dalam tempat pencarian adalah Google Group
(http://groups.google.com).
Seringkali pengguna grup Google dari perusahaan tertentu mempost informasi
internal perusahaan tanpa ia tahu bahwa post dia tersebut dapat dilihat oleh
semua orang.
2.2 Input filtering attacks
Website dan aplikasi seringkali terdapat form untuk memasukkan data dari
pengguna yang selanjutnya diolah oleh script di server. Kesalahan dalam proses
validasi data adalah kesalahan umum yang sering dibuat oleh developer web.
Beberapa serangan dapat dilakukan dengan mengakali data masukan agar dapat
memproses data yang bukan seharusnya dimasukkan sehingga dapat membingungkan
atau membuat server menjadi crash. Kekurangtelitian dalam memvalidasi data juga
dapat membuat attacker mendapatkan informasi tertentu mengenai server website.
2.2.1 Buffer overflows
Salah satu serangan paling serius yang memanfaatkan metode input adalah buffer
overflow yang targetnya adalah memanipulasi kolom input pada aplikasi web.
Sebagai contoh, field name halaman pendaftaran situs elearning gunadarma secara
default di set hanya menerima inputan sepanjang 50 karakter. Panjang karakter
maksimum ini dapat diakali dengan menggunakan Addon Firefox Web Developer agar
panjang karakter menjadi tidak terbatas. Pada beberapa kasus, hal ini dapat
mengakibatkan crash pada server.
2.2.2 URL manipulation
Dengan manipulasi URL, kita dapat memerintahkan server untuk melakukan berbagai
hal, misalnya mengarahkan ke alamat website tertentu, mengakses file sensitif
dari server, dll. Salah satu contohnya jika terdapat aplikasi yang menerima
input url dari user (biasanya melalui CGI), pada beberapa kasus kita dapat
memerintahkan server untuk menampilkan informasi password server (Linux).
Misalnya dengan perintah berikut :
2.2.3 Hidden field manipulation
Beberapa aplikasi web mengandung field tersembunyi yang berisi nilai default
untuk diakses bersama dengan input field lain yang tidak tersembunyi. Hidden
field direpresentasikan dalam webform dengan code <input type=”hidden”>.
Jika pembuat web ceroboh, terkadang hidden field disikan dengan nilai penting
(misalnya harga barang pada situs e-commerse) yang seharusnya disimpan pada
database. Secara kasat mata, user tidak dapat melihat field yang tersembunyi
ini. Namun, jika jeli maka kita bisa mengakalinya dengan cara-cara berikut:
1. Melihat kode sumber HTML.
Pada Internet Explorer, pilih menu Page?View Source. Sedangkan pada Firefox,
pilih menu View?Page Source.
2. Merubah informasi pada field tersebut.
Sebagai contoh, harga barang yang seharusnya 1 juta kita rubah menjadi 1000
rupiah.
3. Mengirimkan data yang sudah dimanipulasi ke server.
Dengan aplikasi WebInspect, kita dapat menemukan sekaligus memanipulasi hidden
fields dengan mudah.
2.2.4 Code injection and SQL injection
Mirip dengan manipulasi URL, serangan dengan code injection dapat memanipulasi
variable-variabel yang dikirimkan melalui URL.
Kita dapat mencoba memanipulasi info_variable dengan mengubah nilai X menjadi
nilai tertentu, misalnya :
Dari respon yang diterima, kita dapat menganalisa langkah berikutnya yang dapat
dilakukan. Misal jika perintah di atas memberikan detail eror atau malah
membuka halaman yang seharusnya tidak berhak diakses user tersebut.
Code injection juga dapat dilakukan untuk menyerang database SQL pada server,
atau lebih dikenal dengan istilah SQL Injection. Dengan SQL injection, kita
dapat melakukan statement SQL seperti CONNECT, SELECT, UNION, dll kedalam URL
untuk memperoleh koneksi database, mengambil data, atau menambah data dari
database SQL tersebut. SQL injection seringkali dapat dilakukan karena script
tidak sempurna atau terdapat kesalahan dan pesan eror dari database tersebut
ditampilkan pada browser sehingga attacker dapat mengetahui informasi database
yang digunakan.
Terdapat dua teknik umum dari SQL Injection, yaitu standar (atau juga dikenal
dengan error-based) dan blind. Error-based SQL injection dilakukan berdasarkan
pesan eror dari aplikasi ketika data tidak valid dimasukkan ke sistem.
Sedangkan blind SQL injection dilakukan jika pesan eror tidak diaktifkan,
sehingga membutuhkan tools tambahan untuk menebak informasi apa yang database
kembalikan dan bagaimana server merespon percobaan injection.
Cara cepat untuk mengecek apakah sebuah website memiliki celah untuk SQL
injection adalah dengan menambahkan karakter kutip satu (‘) di form web atau di
akhir URL. Jika terdapat pesan kesalahan dari SQL, maka kita akan mudah untuk
melakukan SQL injection. Dalam melakukan SQL injection, kita dapat menggunakan
tools WebInspect atau Acunetix Web Vulnerability Scanner untuk memudahkan dalam
pengecekan SQL injection. Ketika WebInspect menemukan celah untuk SQL
Injection, pilih menu SQL injector dan kita akan terhubung dengan database di
server tersebut. Lalu kita dapat mengklik tombol Get Data untuk mengambil data
dari database tersebut.
2.2.5 Cross-site scripting
Cross-site scripting(XSS) mungkin adalah celah paling umum dari sebuah website
yang terjadi ketika halaman web menampilkan input dari user – melalui
JavaScript dan VBScript – dan script tidak atau salah dalam memvalidasi input
tersebut, biasanya karena tidak terdapatnya filter input. Kita dapat mengambil
keuntungan dari ketiadaan filter input ini dengan melakukan XSS yang dapat
menyebabkan halaman web mengeksekusi kode-kode tertentu ketika user mengakses
halaman tersebut.
Sebagai contoh, dengan XSS attack hacker dapat menampilkan halaman login palsu.
Jika user tidak menyadari atau ceroboh lalu mengisi username dan password di
halaman tersebut, maka username dan password tersebut akan tercatat dalam log
di server hacker. Hacker lalu dapat menggunakan username dan password yang
tercatat di log untuk login dan melakukan tindakan yang dia inginkan terhadap
user tersebut.
Cara mudah untuk mengetes apakah sebuah website terdapat celah untuk XSS adalah
dengan mencari form inputan dari user pada website (misal halaman login atau
pencarian) dan ketikkan javascript sederhana berikut ini:
<script>alert(‘nyoba XSS gan!!’)</script>
Jika muncul jendela pop-up dan menampilkan alert “Nyoba XSS gan!!”, berarti
pada halaman tersebut dapat kita lakukan XSS Attack. Selain dengan cara manual
di atas, tools WebInspect dan Acunetix Web Vulnerability Scanner juga dapat
digunakan untuk mencari celah XSS attack.
0 komentar:
Posting Komentar