Home » Reviews » HTTP Protocol Basic

HTTP Protocol Basic

Pengertian Dasar

Ketika kita membuka sebuah halaman website, sebenarnya ada proses apa saja dibalik terbukanya halaman website tersebut? Pertanyaan itulah yang akan mengarahkan kita kepada salah satu pengetahuan tentang information gathering yang biasanya digunakan oleh para penyusup untuk memasuki sistem suatu website. Seperti yang sudah kami jelaskan pada tulisan sebelumnya bahwa information gathering adalah suatu proses penting yang tidak akan dilewatkan oleh para penyusup untuk dilakukan sehingga mereka bisa mendapatkan lebih banyak informasi tentang sistem yang menjadi target. Sistem target yang akan dibahas dalam tulisan ini adalah sebuah website.

Sebelum kami membahas lebih jauh tentang informasi apa yang dicari oleh para penyusup terhadap suatu website melalui HTTP Protocol Basic, ada baiknya anda mengetahui beberapa istilah dibawah ini.

HTTP adalah sebuah protokol dimana adanya pertukaran pesan antara client dan server. Pesan ini terdiri dari dua bagian utama yaitu “Header” dan “Message Body“. Yang disebut dengan Header adalah seperti tampak pada Gambar 1, sedangkan yang disebut dengan Message Body adalah sorce code yang membentuk halaman website yang sedang dibuka.

HTTP Protocol dibagi menjadi dua yaitu :
a. HTTP Request


Gambar 1. HTTP Request  Header  dari www.google.com

Ini adalah apa yang terjadi ketika kita membuka browser dan mengetikkan url www.google.com, maka request HTTP ke www.google.com dimulai, apa yang anda lihat pada gambar di atas adalah Header atau yang di sebut HTTP Request Headers. Koneksi ke www.google.com pada port 80 dimulai sebelum mengirimkan perintah HTTP ke web server .

Ketika kita melakukan permintaan untuk membuka website www.google.com ada beberapa bagian yg diperlukan, yaitu :

a.1. Request Method
Ini adalah jenis permintaan yang juga dikenal sebagai HTTP Verb. Tipe Request Method adalah :
GET : verb ini digunakan untuk meminta resource yang spesifik, misalnya : ada sebuah website yang meminta anda untuk memasukkan nama anda dan kemudian klik submit, maka pernyataan GET akan terlihat seperti ini :

GET /page.php?name=indri HTTP/1.1
POST : verb ini digunakan untuk mengirimkan data ke bentuk html dan argumen berada di body request.
PUT : dapat digunakan untuk mengupload file ke server
DELETE : digunakan untuk menghapus resource / file tertentu dari web server
OPTIONS : digunakan untuk query web server tentang verb yang digunakan.

a.2. Host Header
HTTP Headers memiliki struktur sebagai berikut :

Header-name: Header-value

Host header mengijinkan web server untuk host beberapa website pada alamat IP sama. ini berarti anda harus menentukan website yang anda inginkan di host header.
contoh : http://www.google.com

a.3. Protocol
Ini adalah versi HTTP protokol dari browser dalam berkomunikasi dengan web server (HTTP/1.1).

a.4. Path
Ini adalah alamat file yang anda minta, contoh : /downloads/index.php

a.5. Host Value
Contoh jika anda ingin menuju ke host : www.google.com host value + path akan menjadi rangkaian URL yang anda minta.

a.6. Accept Header
Ini digunakan oleh browser untuk menentukan jenis dokumen yang diharapkan sebagai hasil dari permintaan anda.

a.7. Host user agent
User agent menampilkan versi browser, sistem operasi dan bahasa untuk remote web server. semua web browser memiliki user agent untuk identifikasi mereka sendiri. ini adalah bagaimana website mengenali jenis browser yang digunakan.
contoh :

user-agent : Mozilla/5.0 (windows; U; Windows NT 6.1; it; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 GTBDFffGTB7.0

a.8. Header Connection
Perbedaan antara HTTP/1.1 dengan HTTP/1.0, yaitu penggunaan hubungan persistent / kuat.

  • HTTP/1.0 membuka satu koneksi untuk tiap permintaan URI, header = Connection: close.
  • HTTP/1.1 dapat menggunakan sebuah koneksi TCP untuk beberapa permintaan URI (persistent), header = Connection: Keep-Alive

b. HTTP Response
Menanggapi Permintaan HTTP, web server akan merespon dengan sumber daya yang diminta sebelumnya oleh sejumlah Headers. Header ini akan digunakan oleh browser web untuk menafsirkan isi yang ada dalam Respon content.


Gambar 2. HTTP Response pada www.google.com

b.1. Cache headers
Header Cache memungkinkan Browser dan Server untuk bertukar informasi tentang cache content. Cache contents menghemat bandwidth karena mencegah browser untuk meminta content yang tidak dimodifikasi ketika sumber daya yang sama akan digunakan.

b.2. Server header
Header Server berisi banner dari Web Server. Apache dan IIS adalah web server umum. Google menggunakan sebuah banner web server custom yang disebut sebagai “GWS” (Google Web Server).

b.3. Via header
Via Header hadir ketika sambungan telah melalui proxy. Proxy adalah web server khusus untuk pengiriman cache content agar lebih cepat

b.4. Content
Ini adalah content dari resource yang diminta. Konten dapat menjadi halaman web html, dokumen atau file binery. Jenis konten terkandung dalam header Content-type

2. Arti penting Information Gathering di HTTP Protrocol

Untuk membuka suatu website dibutuhkan Request Method, jika kita bisa mengetahui Request Method apa saja yang digunakan untuk membuka halaman suatu website, maka besar sekali kemungkinan penyusup dapat memanfaatkannya. Contohnya, jika penyusup mengetahui bahwa request method yang di ijinkan adalah “OPTIONS”, maka penyusup bisa mengetahui seluruh Request Method yang di ijinkan di halaman tersebut selain “OPTIONS”, seperti tampak pada Gambar 3.


Gambar 3. Request Method yang di ijinkan di halaman website

Lalu bagaimana cara penyusup bisa mengetahui Request Method yang di ijinkan ? Sebut saja sebuah tool yang bernama Burp Suite, dengan Burp Suite penyusup hanya perlu memasukkan alamat URL dari suatu halaman website, maka penyusup tersebut dapat mengetahui Request Method yang di ijinkan di halaman web tersebut.
Pada Gambar 3, terlihat Request Method yang di ijinkan di antaranya ada “TRACE”, dengan menggunakan Request Method “TRACE”, penyusup dapat meng- capture cookies dari client yang aktif (dampaknya sama dengan serangan XSS).

Server Header juga merupakan informasi penting yang dibutuhkan oleh penyusup. Jika beruntung mendapatkan banner dari web server lengkap dengan versinya maka penyusup dapat memanfaatkan informasi tersebut untuk mencari kelemahan, salah satu nya jika versi dari banner tersebut masih menggunakan versi lama atau belum di patch maka berpeluang untuk di serang dengan menggunakan metode DoS.

3. Solusi Pencegahan
Dari penjelasan di atas, kita bisa mengetahui bagaimana cara seorang penyusup bisa melakukan serangan pada system website kita. Sebenarnya, penyusup dapat melakukan serangan apabila penyusup telah memiliki informasi yang lengkap. Jika seorang pengaman data telah mengetahui hal itu, maka solusi yang bisa dilakukan adalah menutup segala kemungkinan agar penyusup tidak mendapatkan informasi yang dibutuhkan.
Untuk kasus HTTP Protocol ini, informasi yang sangat dibutuhkan oleh penyusup adalah mengetahui Request Method yang di ijinkan, terutama “OPTIONS” dan banner dari web server.
Pertanyaan selanjutnya, bagaimana cara menutup Request Method “OPTIONS” dan banner dari web server tersebut?

Untuk menutup Request Method “OPTIONS” adalah :
Misalnya halaman web yang digunakan untuk menyimpan file images, Request Method “OPTIONS” terbuka. Anggap saja tempat untuk menyimpan file images itu ada di directory “C:/xampp/htdocs/dvwa/dvwa/images/”, maka langkah-langkah nya adalah seperti dibawah ini.

Berikut ini setting di httpd.conf yang merupakan vulnerability misconfiguration.

Untuk solusi nya, bisa dilakukan sedikit perubahan terhadap setting nya di file tersebut.

Untuk menutup informasi banner dari web server bisa dilakukan dengan merubah konfigurasi “ServerSignature On” menjadi “ServerSignature Off” pada file httpd.conf.

4. Informasi untuk pembaca
Tulisan ini dibuat untuk membantu tugas dari para pengaman data, bukan untuk membantu tugas dari para penyusup :D
Mohon maaf, apabila teknik-teknik detil untuk penyusup tidak dibahas pada tulisan ini.

Penulis:
- Indri (indri.cantik@gmail.com)
- Mark (mark.rizal@gmail.com)

6 Comments

  1. Info yang penting untuk pengguna internet terutama para blogger

  2. bookmark dah
    bagus situsnya…
    hehehe

  3. Bagus nihh (y)

Leave a Reply

Scroll To Top