Sunday, 15 December 2024

Ciri-ciri Parameter yang Rentan XSS dan SQL Injection

Keamanan aplikasi web menjadi perhatian utama dalam pengembangan perangkat lunak modern. Dua jenis serangan yang paling sering ditemui adalah Cross-Site Scripting (XSS) dan SQL Injection. Kedua serangan ini dapat dieksploitasi melalui celah keamanan di parameter input aplikasi, yang memungkinkan penyerang untuk mengakses, memanipulasi, atau bahkan merusak data yang ada. Dalam artikel ini, kita akan membahas ciri-ciri parameter yang rentan terhadap serangan XSS dan SQL Injection serta bagaimana cara untuk mengidentifikasi dan menghindari potensi ancaman tersebut.


1. Ciri-ciri Parameter yang Rentan terhadap XSS

Cross-Site Scripting (XSS) adalah jenis serangan di mana penyerang menyuntikkan kode JavaScript berbahaya ke dalam halaman web yang akan dieksekusi oleh browser pengguna lain. Serangan ini biasanya terjadi melalui parameter input seperti kolom pencarian, formulir kontak, atau URL.


Beberapa ciri-ciri parameter yang rentan terhadap XSS antara lain:


Input yang tidak divalidasi dengan benar

Parameter yang tidak memeriksa atau menyaring karakter-karakter berbahaya (seperti <, >, &, atau "), bisa memungkinkan penyerang untuk menyuntikkan kode JavaScript. Misalnya, jika aplikasi menerima input berupa nama pengguna tanpa memvalidasi atau menyaring karakter berbahaya, kode JavaScript dapat dieksekusi di sisi pengguna.


Penggunaan parameter input dalam konteks HTML, JavaScript, atau URL

Ketika data input langsung dimasukkan ke dalam elemen HTML, atribut, atau bagian dari script tanpa sanitasi yang tepat, maka itu adalah celah potensial untuk serangan XSS. Misalnya, memasukkan input pengguna ke dalam atribut HTML seperti href, src, atau bahkan title bisa memicu eksekusi script yang tidak diinginkan.


Tidak ada encoding atau escaping pada output

Jika aplikasi web menampilkan input pengguna langsung ke halaman tanpa melakukan proses encoding atau escaping, penyerang dapat menyuntikkan kode berbahaya. Encoding mengubah karakter-karakter berbahaya menjadi entitas yang aman, sementara escaping menghindari pengolahan karakter tersebut sebagai bagian dari HTML atau JavaScript.


2. Ciri-ciri Parameter yang Rentan terhadap SQL Injection

SQL Injection adalah jenis serangan yang melibatkan penyuntikan kode SQL berbahaya melalui parameter input yang tidak terlindungi dengan baik. Serangan ini memungkinkan penyerang untuk mengakses, memodifikasi, atau menghapus data dari database secara ilegal.


Beberapa ciri-ciri parameter yang rentan terhadap SQL Injection antara lain:


Penggunaan query SQL dinamis tanpa parameterisasi

Penggunaan query SQL yang disusun secara langsung menggunakan input pengguna tanpa mekanisme parameterisasi sangat rentan terhadap SQL Injection. Misalnya, jika aplikasi menggunakan query seperti berikut:


sql

Salin kode

SELECT * FROM users WHERE username = '$_GET['username']' AND password = '$_GET['password']';

Query ini dapat dimanipulasi dengan menyuntikkan kode SQL berbahaya yang memungkinkan penyerang untuk mendapatkan akses ke database.


Input yang tidak divalidasi atau disanitasi

Parameter input yang digunakan dalam query SQL yang tidak diperiksa atau dibersihkan memungkinkan penyerang untuk menyuntikkan perintah SQL. Misalnya, seorang penyerang bisa memasukkan OR 1=1 ke dalam kolom username atau password, yang akan membuat query selalu berhasil dieksekusi, bahkan tanpa validasi kredensial yang benar.


Error message yang menunjukkan informasi detail tentang database

Jika aplikasi tidak menangani error dengan baik dan menampilkan pesan error yang berisi informasi tentang struktur database (misalnya, nama tabel atau kolom), ini bisa memberi petunjuk bagi penyerang untuk merancang serangan SQL Injection yang lebih kompleks.


Tidak ada pembatasan atau pengecekan panjang input

Parameter input yang menerima string panjang tanpa batasan dapat digunakan untuk menyuntikkan kode SQL panjang yang berbahaya. Mengatur batasan pada panjang input sangat penting untuk mengurangi risiko eksploitasi.


3. Cara Menghindari Risiko XSS dan SQL Injection

Untuk mencegah serangan XSS dan SQL Injection, ada beberapa praktik terbaik yang dapat diterapkan:


Validasi dan sanitasi input pengguna

Semua input yang diterima dari pengguna harus divalidasi untuk memastikan bahwa mereka hanya mengandung karakter yang diizinkan. Untuk XSS, pastikan bahwa input tidak mengandung tag HTML atau JavaScript. Sedangkan untuk SQL Injection, pastikan input tidak mengandung karakter yang berbahaya seperti tanda kutip tunggal (') atau tanda komentar (--) yang dapat digunakan untuk menyusupkan query SQL.


Gunakan query SQL parameterized

Selalu gunakan parameterized queries atau prepared statements saat berinteraksi dengan database. Ini memastikan bahwa input pengguna tidak akan diperlakukan sebagai bagian dari query SQL, tetapi hanya sebagai data yang valid.


Escape atau encode output sebelum ditampilkan

Setiap output yang dihasilkan dari input pengguna harus di-escape atau di-encode agar karakter berbahaya tidak diproses oleh browser atau database. Untuk XSS, misalnya, pastikan karakter seperti <, >, dan " diubah menjadi entitas HTML.


Batasi panjang input pengguna

Batasi jumlah karakter yang dapat dimasukkan oleh pengguna pada setiap form atau parameter URL untuk mengurangi kemungkinan penyuntikan kode yang sangat panjang.


Gunakan framework dan pustaka keamanan

Banyak framework web modern sudah memiliki mekanisme keamanan built-in yang secara otomatis mencegah sebagian besar risiko XSS dan SQL Injection. Memanfaatkan pustaka-pustaka keamanan ini dapat sangat membantu dalam menjaga keamanan aplikasi.


Kesimpulan

XSS dan SQL Injection adalah dua ancaman besar yang dapat membahayakan aplikasi web dan data pengguna. Ciri-ciri parameter yang rentan terhadap kedua jenis serangan ini biasanya terkait dengan kurangnya validasi, sanitasi, dan encoding input pengguna. Untuk menjaga keamanan aplikasi, penting bagi pengembang untuk selalu memeriksa input dan output dengan hati-hati, menggunakan teknik yang aman dalam berinteraksi dengan database, serta memanfaatkan mekanisme perlindungan yang ada di dalam framework atau pustaka keamanan.


Dengan menerapkan praktik keamanan terbaik, aplikasi web dapat terlindung dari potensi serangan XSS dan SQL Injection yang merugikan.

Wednesday, 11 December 2024

Belajar Deface Website untuk Pemula - Panduan Lengkap dan Etis

Belajar Deface Website untuk Pemula -  Panduan Lengkap dan Etis Deface website, atau “deface”, adalah tindakan mengubah tampilan halaman web tanpa izin. Tindakan ini sering dilakukan oleh peretas sebagai pesan atau murni kemampuannya. Namun, sebagai seorang yang baru belajar hacking, tolong perhatikan bahwa defacing tidak boleh dilakukan tanpa izin karena tindakan akan menjadi ilegal dan Anda akan berurusan dengan penyidikan yang serius. 

Artikel ini bertujuan memberikan konteks teknis tentang defacing manner agar lebih teredukasi tentang topik ini. Apa Itu Deface Website? Deface website terjadi ketika seseorang mendapatkan akses ke backend sistem website dan mengubah file atau database ke sistem tersebut, menghasilkan halaman lain yang berisi konten buatan mereka. Beberapa cara melakukannya adalah dengan mengeksploitasi celah sebagai berikut: 

 

1. Kerentanan File Upload. 

2. SQL Injection untuk mendapatkan akses admin. 

3. Cross-Site Scripting untuk mencuri sesi pengguna 

4. Penggunaan credential default 

 

Prinsip dasar deface manner: 

1. Jangan membobol website publik. Alasan: Ilegal 

2. Gunakan lab pribadi . 

1. Buat server lokal, atau gunakan XAMPP untuk membuat website palsu. 

2. Gunakan platform legal, seperti Bug Bounty atau hackthebox untuk bereksperimen 

 

Langkah belajar deface manner: 

1. Memahami dasar teknologo website 

2. Tools yang akan Anda gunakan 

3. Cari celah kerentanan. 

4. Deface.

 

Setelah mengetahui dasar-dasar website, langkah selanjutnya adalah mencari slah perangkat lunak di keamanan. Berikut adalah beberapa teknik yang biasanya digunakan untuk mendapatkan akses ke server korban:

 

File Upload Exploit

File upload vulnerability terjadi ketika file yang diunggah ke website tidak divalidasi. Berikut adalah langkah eksploitasi:

a. Cari halaman upload di website.

b. Unggah file yang berisi script malicial : PHP shell.

c. Akses file yang diunggah melalui URL:

 

Contoh payload sederhana PHP shell :

php

Setelah diunggah, Anda dapat menjalankan perintah dengan menambahkan ‘?cmd=command’ di akhir URL.

 

SQL Injection Exploitation

SQL Injection memungkinkan akses ke database dengan cara menyusipkan perintah SQL di input website. Berikut langkah sederhana:

a. Cari form login atau search, dst.

b. Uji dengan menggunakan karakter ‘ ‘ OR ‘1’=’1.

c. Jika berhasil, gunakan tools seperti SQLmap terhadap website tersebut.

 

Cross-Site Scripting XSS

XSS memungkinkan untuk menyusupkan skrip ke halaman web yang bisa mempengaruhi pengguna lain.

Contoh skrip:

alert(‘Hacked!’);

Defacing

Setelah Anda masuk ke server, langkah terakhir adalah mengganti tampilan halaman website. Biasanya, file index.html atau index.php yang digantikan. Anda dapat mengunggah file HTML berikut yang telah Anda persiapkan:

Hacked By [Your-Name]

Website Ini Telah Diretas!

Belajar Ethical Hacking Secara Bertanggung Jawab!

Wednesday, 4 December 2024

Cara Deface Website - Belajar Hacking Untuk Pemula

Halo semuanya, pada postingan kali ini saya ingin membagikan tutorial cara belajar hacking untuk pemula.



Tutorial yang akan saya bagikan atau share kali ini adalah cara deface sebuah website, mungkin tidak asing bagi kalian untuk yang masih awam ataupun yang sudah berkecimpung dalam dunia hacking.
ya.. deface adalah teknik atau cara untuk merubah tampilan halaman website dengan berbagai gambar, karakter, tulisan bahkan animasi yang di pasang pada halaman website bahkan halaman utama website.

Cara ini dilarang karna sifatnya yang merusak, tapi bagi sebagian orang, ini adalah jurus supaya anda di bilang heker, wkwkwk....

CATATAN : saya membagikan tutotial ini semata - mata hanya untuk pembelajaran saja dan jika ada sesuatu hal yang jika dibuat untuk merusak website orang lain, saya tidak bertanggung jawab atas itu.

Baik langsung dan singkat saja,
Deface adalah cara kita menyisipkan script html kedalam website target dengan cara-cara tertentu. cara yang akan saya bagikan adalah metode deface melalui celah halaman admin. pertama siapkan dulu script deface kalian, jika belum punya usaha dulu bagaimana cara membuat file deface dengan format html tersebut.

Nah langsung aja cari web targer kalian, lalu cari menu halaman "hubungi admin" hampir semua website memiliki fitur tersebut, apalagi website sekolah yang biasa menjadi bahan pembelajaran anak-anak deface yang baru belajar. nah jika sudah ketemu halaman atau menu "hubungi admin" langsung aja tuh kalian klik dan kalian isi data diri anda asal aja, lalu pada kolom pesan atau pada bagian penulisan apa yang ingin di sampaikan, kalian isi dengan script deface kalian. jika sudah kalian enter untuk memngirim. cukup mudah bukan ? ya itu sangat mudah jika anda mengetahui caranya.

Lalu bagaimana cara membuka file deface kalian agar tampil ? caranya anda masukan url target kalian,di sambung dengan ini.. contoh : https://webtarget.com/hubungiadmin/namafiledeface.html lalu klik enter, jika deface kalian terbuka artinya web tersebut vuln/memiliki kerentanan, jika tidak terbuka, maka web tersebut aman/tidak vuln. dan langkah selanjutnya adalah cari target baru.

Nah segitu dulu tutorial yang bisa saya share hari ini, selamat belajar.

Wednesday, 13 November 2024

Cara mudah mencari kerentanan sql injection

Berikut adalah cara paling mudah untuk mencari kerentanan sql injection pada sebuah website hanya dengan 1 perintah.



1 Baris perintah untuk mencari kerentanan SQLI :


waybackurls target.com | grep '=' | httpx --silent --status-code | awk '{print $1}' | xargs -I{} sqlmap -u {} -v 3 --random-agent --tamper "between,randomcase,space2comment" --level 5 --risk 3 --batch --threads 5 --crawl 2 --suffix=') and 1=1-- -'


atau


waybackurls target.com | grep '=' | httpx --silent --status-code | awk '{print $1}' | xargs -I{} sqlmap -u {} --random-agent --tamper=space2comment --level 5 --risk 3 --batch --threads 5



1. waybackurls target.com


Deskripsi: Alat waybackurls digunakan untuk mengambil arsip URL dari Wayback Machine atau penyimpanan arsip lainnya untuk domain target.com.

    

Fungsi: Ini memberikan daftar URL yang sebelumnya diketahui untuk domain tersebut, yang bisa mencakup titik masuk potensial bagi serangan.


2. grep '='


Deskripsi: grep '=' digunakan untuk memfilter URL yang mengandung tanda =.

   

Fungsi: URL yang mengandung = biasanya menunjukkan adanya parameter dalam URL, yang mungkin rentan terhadap serangan SQL Injection atau eksploitasi parameter lainnya.


3. httpx --silent --status-code


Deskripsi: httpx adalah alat yang mengirimkan permintaan HTTP ke URL yang difilter dari output waybackurls dan menambahkan status code HTTP pada setiap baris URL hasilnya.

    

Fungsi: Ini memeriksa apakah URL masih aktif (contohnya, hanya mengambil URL yang memiliki kode status valid seperti 200).


4. awk '{print $1}'


Deskripsi: awk digunakan untuk menampilkan hanya URL, tanpa status code.

    

Fungsi: Karena httpx menambahkan status code pada output, awk '{print $1}' memisahkan URL tersebut agar mudah digunakan dalam tahap selanjutnya.


5. xargs -I{} sqlmap -u {} ...


Deskripsi: xargs menjalankan perintah sqlmap untuk setiap URL yang difilter, menggantikan {} dengan URL dari hasil awk.

    

Fungsi: xargs memungkinkan penggunaan dinamis dari URL sebagai input untuk sqlmap.


6. sqlmap -u {} -v 3 --random-agent --tamper "between,randomcase,space2comment" --level 5 --risk 3 --batch --threads 5 --crawl 2 --suffix=') and 1=1-- -'

Tuesday, 27 August 2024

Script Python sederhana untuk menyimpan nilai ke dalam file

Python, sebuah bahasa pemrograman yang populer dan fleksibel, telah mengubah dunia teknologi dengan cara yang luar biasa. Dengan sintaksis yang mudah dibaca dan berbagai perpustakaan standar, Python menjadi pilihan utama bagi programmer untuk mengembangkan aplikasi web, data science, AI, dan lain-lain.



Berikut ini adalah contoh script Python sederhana untuk menyimpan nilai ke dalam file:


python

Contoh script :

# Buat file baru jika tidak ada
if not os.path.exists('data.txt'):  # Check if file exists 
    with open('data.txt', 'w') as f:  # Create new file if not exist 
        pass   # Do nothing here    
# Tentukan nilai untuk ditulis ke dalam file  
value = input("Enter a value to be saved: ")   # Get user input   
# Simpan nilai ke dalam file    
with open('data.txt', 'a') as f:   # Open the existing or new file for writing    f.write(f"{value}\n") # Write the value to the end of the text in a new line      f.close()   # Close the opened files     print("Value saved successfully!")       ```