1. HTTP Protocol Basic
23 May 2012
1. 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
om
yang tidak akan dilewatkan oleh para penyusup untuk dilakukan sehingga mereka bisa
ai
l.c
mendapatkan lebih banyak informasi tentang sistem yang menjadi target. Sistem target yang
gm
akan dibahas dalam tulisan ini adalah sebuah website.
al
@
Sebelum kami membahas lebih jauh tentang informasi apa yang dicari oleh para
riz
penyusup terhadap suatu website melalui HTTP Protocol Basic, ada baiknya anda
k.
mengetahui beberapa istilah dibawah ini.
ar
HTTP adalah sebuah protokol dimana adanya pertukaran pesan antara client dan
&
m
server. Pesan ini terdiri dari dua bagian utama yaitu “Header” dan “Message Body“. Yang
l.c
om
disebut dengan Header adalah seperti tampak pada Gambar 1, sedangkan yang disebut
dengan Message Body adalah sorce code yang membentuk halaman website yang sedang
gm
ai
dibuka.
HTTP Protocol dibagi menjadi dua yaitu :
in
d
ri.
ca
n
tik
@
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 :
2. 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
ai
l.c
OPTIONS : digunakan untuk query web server tentang verb yang digunakan.
om
DELETE : digunakan untuk menghapus resource / file tertentu dari web server
gm
a.2. Host Header
al
@
HTTP Headers memiliki struktur sebagai berikut :
ar
k.
riz
Header-name: Header-value
m
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.
ai
l.c
om
contoh : http://www.google.com
gm
a.3. Protocol
@
Ini adalah versi HTTP protokol dari browser dalam berkomunikasi dengan web server
ca
n
tik
(HTTP/1.1).
ri.
a.4. Path
in
d
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.
3. 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 /
om
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),
gm
ai
l.c
al
@
header = Connection: Keep-Alive
riz
b. HTTP Response
ar
k.
Menanggapi Permintaan HTTP, web server akan merespon dengan sumber daya yang
m
diminta sebelumnya oleh sejumlah Headers. Header ini akan digunakan oleh browser web
Gambar 2. HTTP Response pada www.google.com
in
d
ri.
ca
n
tik
@
gm
ai
l.c
om
&
untuk menafsirkan isi yang ada dalam Respon content.
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).
4. 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 binary. 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
om
mengetahui Request Method apa saja yang digunakan untuk membuka halaman suatu
l.c
website, maka besar sekali kemungkinan penyusup dapat memanfaatkannya. Contohnya,
gm
ai
jika penyusup mengetahui bahwa request method yang di ijinkan adalah “OPTIONS”, maka
al
@
penyusup bisa mengetahui seluruh Request Method yang di ijinkan di halaman tersebut
in
d
ri.
ca
n
tik
@
gm
ai
l.c
om
&
m
ar
k.
riz
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).
5. 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
om
pengaman data telah mengetahui hal itu, maka solusi yang bisa dilakukan adalah menutup
l.c
segala kemungkinan agar penyusup tidak mendapatkan informasi yang dibutuhkan.
gm
ai
Untuk kasus HTTP Protocol ini, informasi yang sangat dibutuhkan oleh penyusup adalah
al
@
mengetahui Request Method yang di ijinkan, terutama “OPTIONS” dan banner dari web
server.
k.
riz
Pertanyaan selanjutnya, bagaimana cara menutup Request Method “OPTIONS” dan banner
ar
dari web server tersebut?
m
Untuk menutup Request Method “OPTIONS” adalah :
l.c
om
&
Misalnya halaman web yang digunakan untuk menyimpan file images, Request Method
“OPTIONS” terbuka. Anggap saja tempat untuk menyimpan file images itu ada di directory
ai
“C:/xampp/htdocs/dvwa/dvwa/images/”, maka langkah-langkah nya adalah seperti dibawah
gm
ini.
in
d
ri.
ca
n
tik
@
Berikut ini setting di httpd.conf yang merupakan vulnerability misconfiguration.
6. Untuk solusi nya, bisa dilakukan sedikit perubahan terhadap setting nya di file tersebut.
Untuk menutup informasi banner dari web server bisa dilakukan dengan merubah
om
konfigurasi “ServerSignature On” menjadi “ServerSignature Off” pada file httpd.conf.
l.c
4. Informasi untuk pembaca
gm
ai
Tulisan ini dibuat untuk membantu tugas dari para pengaman data, bukan untuk membantu
al
@
tugas dari para penyusup
k.
riz
Mohon maaf, apabila teknik-teknik detil untuk penyusup tidak dibahas pada tulisan ini.
ar
Penulis:
m
- Indri (indri.cantik@gmail.com)
in
d
ri.
ca
n
tik
@
gm
ai
l.c
om
&
- Mark (mark.rizal@gmail.com)