.:: .:
.:: .:::.:: .:: .:::: .:: .:: .:: .::
.: .:: .:: .: .: .:: .:: .:: .:: .:: .:: .: .::
.::::: .::.:: .:: .::.:: .:: .:: .:: .:: .::.::::: .::
.: .:: .: .:: .:: .:: .:: .:: .:: .::.:
.:::: .:::.:: .:: .:: .::::::::.::.::: .:: .::::
ECHO MAGAZINE VOLUME VII, ISSUE XXI, PHILE 0x005.TXT
WEB SECURITY YIN-YANG
Ditulis oleh: gentoo, foobar4joo@gmail.com
===// Pengantar \\===
"If you know both yourself and your enemy, you can win a hundred battles
without a single loss."
Di berbagai segi kehidupan, sangatlah di butuhkan keseimbangan. Bahkan yang
sangat terkenal adalah sebuah ungkapan dari Sun Tzu yang saya tuliskan
diatas, mengenali kelemahan musuh adalah penting, tetapi lebih penting lagi
mengenali kelemahan diri sendiri, karena dengan begitu kita dapat seimbang
dalam bertahan dan menyerang.
Saya harap artikel ini nantinya akan dapat menjadi referensi singkat yang
membahas tentang menyerang dan bertahan dalam dunia keamanan web (web security),
dan artikel ini diharapkan juga bisa menjadi titik mula bagi yang tertarik
dengan keamanan web, sekaligus pembuka mata bagi para programmer web agar
sedikit banyak mulai menaruh perhatian pada keamanan aplikasi yang meraka buat.
Artikel ini akan membahas beberapa jenis celah keamanan web yang umumnya
selalu menjadi primadona dikalangan para pemerhati keamanan web, tetapi
bahasan disini bukan mencakup detil tiap celah, tetapi lebih ke arah
Proof-of-concept dari cara bertahan dan menyerang. Disajikan dengan
menggunakan PHP sebagai bahasa pemrograman "dynamic", HTML, serta mysql
sebagai "database engine".
Formatnya pun akan selalu sama, penyajian kode yang memiliki celah, cara
memperkuatnya (bertahan) kemudian diikuti dengan bagaimana metode untuk
mengexploitasinya. Jangan berharap artikel ini akan mengajarkan anda dari
Nol, bagaimana membuat web, mengkode dengan PHP dan mysql, atau penjelasan
detil (pengertian-panjang-lebar) tentang setiap celah.
Partisipasi aktif andalah yang akan menentukan apakah artikel ini akan
bermanfaat buat anda nantinya :)
===// Yin-Yang \\===
====// XSS Reflected \\====
kode yang memiliki celah untuk di serang:
--------\\ sweet.php
echo 'Selamat Datang' . $_GET['sweet'];
--------//
Adapun kode untuk melindungi adalah dengan menambahkan fungsi "strip_tags"
atau "htmlspecialchars" untuk memeriksa variabel tersebut terlebih dahulu.
--------\\sweet-patch.php
echo 'Selamat Datang' . strip_tags($_GET['sweet']);
atau
echo 'Selamat Datang' . htmlspecialchars($_GET['sweet']);
--------//
------// Eksploitasi \\------
sweet.php?sweet=
====// XSS Persistent \\====
kode yang memiliki celah untuk di serang:
--------\\ sweet.php
$sweet = trim($_POST['txtSweet']);
$sweet = mysql_real_escape_string($sweet);
$query = "INSERT INTO sweet (sweet) VALUES ('$sweet');";
--------//
Adapun fungsi yang digunakan untuk mengamankannya adalah "stripslashes",
"addslashes", "htmlspecialchars"
--------\\sweet-patch.php
$sweet = stripslashes($sweet);
$sweet = mysql_real_escape_string($sweet);
$sweet = htmlspecialchars($sweet);
$query = "INSERT INTO sweet (sweet) VALUES ('$sweet');";
--------//
------// Eksploitasi \\------
sweet.php?sweet=