Yulian Sani - Security Assessment Crackme - Cenzic

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 37

WEB SECURITY PENETRATION TEST

Site Target : http://crackme.cenzic.com

Document Properties

Title Security Assessment / Penetration Testing Report


Code Version CM.CZ 18 - V 1.0
Author Yulian Sani
Pen-tester Yulian Sani
Reviewed By
Approved By
Classification Web Security Analyst

Version Control

Version Date Author Desc


V 1.0 24 Feb 2018 Yulian Sani

1
DAFTAR ISI

COVER .................................................................................................................... 1
DAFTAR ISI ........................................................................................................... 2
DAFTAR GAMBAR .............................................................................................. 3

I. INTRODUCTION ............................................................................................ 4
1.1. Ringkasan ............................................................................................... 4
1.2. Ruang Lingkup ....................................................................................... 4
1.3. Timeline .................................................................................................. 4
II. LANDASAN TEORI ........................................................................................ 5
2.1. Metodologi .............................................................................................. 5
2.2. Security Goals ......................................................................................... 7
III. PEMBAHASAN ............................................................................................... 8
3.1. Perencanaan (Planning) ....................................................................... 8
3.1.1. Footprinting ................................................................................. 8
a) Netcraft.com ..................................................................................... 8
b) htbridge.com/ssl ................................................................................. 9
3.1.2. Scanning ....................................................................................... 11
a) Network Scanning ............................................................................. 11
b) Web Scanning ................................................................................... 13
1. High Level Threat ......................................................................... 15
2. Medium Level Threat ................................................................... 17
3. Low Level Threat ......................................................................... 19
3.2. Exploitation ............................................................................................ 20
a. Pengujian Blackbox ........................................................................... 21
1. Pengujian Karakter String ............................................................ 21
2. Pengujian SQL Injection .............................................................. 22
3. Pengujian Cross Site Scripting ..................................................... 22
b. Injection menggunakan SQL Map .................................................... 24
III. ANALISA SISTEM .......................................................................................... 27
IV. REKOMENDASI PERBAIKAN KEAMANAN SISTEM ............................ 29

REFERENSI ........................................................................................................... 37

2
DAFTAR GAMBAR

Gambar 2.1. : Tahapan Aktifitas CEH .................................................................... 5


Gambar 2.2. : Tahapan Aktifitas Security Asessment ............................................ 6
Gambar 3.1. : Netcraft Monitoring ......................................................................... 9
Gambar 3.2. : Htbridge Monitoring ......................................................................... 11
Gambar 3.3. : NMAP (Port Scanning) ..................................................................... 12
Gambar 3.4. : NMAP Scanning (Firewall) .............................................................. 12
Gambar 3.5. : Acunetix Threat Level ...................................................................... 13
Gambar 3.6. : Acunetix Information Gathering ....................................................... 14
Gambar 3.7. : Acunetix List Threat dan Level ........................................................ 15
Gambar 3.8. : Acunetix High Level Threat dan Link ............................................. 16
Gambar 3.9. : Acunetix Medium Level Threat dan Link ........................................ 17
Gambar 3.10. : Acunetix Site Stucture ................................................................... 18
Gambar 3.10. : Acunetix Low Level Threat dan Link ............................................. 19
Gambar 3.11. : Acunetix Cookies Vurnerability .................................................... 20
Gambar 3.12. : Blackbox Testing di Menu Register ............................................... 22
Gambar 3.13. : Konfirmasi Error saat aplikasi menerima ilegal karakter ............... 22
Gambar 3.14. : By Pass Login Menggunakan SQL Injection ................................ 23
Gambar 3.15. : Kode Error di Aplikasi akibat XSS ................................................ 23
Gambar 3.16. : Tampilan XSS dengan Fungsi Bold HTML ................................. 24
Gambar 3.17. : Tampilan XSS dengan Fungsi Image HTML .............................. 25
Gambar 3.18. : NMAP Scanner ............................................................................... 26
Gambar 3.19. : NMAP Script execution [1] ........................................................... 26
Gambar 3.20. : Output NMAP Script execution [1] ............................................... 26
Gambar 3.21. : NMAP Script execution [2] ........................................................... 27
Gambar 3.22. : Output NMAP Script execution [2] ............................................... 27
Gambar 4.1. : Konfirmasi Error di Target ............................................................... 28
Gambar 5.1. : Informasi Request Header di Acunetix ............................................ 29
Gambar 5.2. : Informasi Slow HTTP Dos di Acunetix ........................................... 30
Gambar 5.3. : Sample Penerapan Htaccess ............................................................. 32
Gambar 5.4. : (a) Kolom Input tanggal di aplikasi, (b) sample datepicker box ....... 33
Gambar 5.5. : Link Address Tanpa SSL .................................................................. 33
Gambar 5.6. : Implementasi Enkripsi di MySQL .................................................... 34
Gambar 5.7. : Informasi Error yang tampil di Site .................................................. 35
Gambar 5.8. : Penerapan CAPTCHA ...................................................................... 36
Gambar 5.9. : Kode Authentifikasi via SMS ........................................................... 36

3
I. INTRODUCTION

1.1. Latar Belakang

Dokumen ini menjelaskan penilaian keamanan (security assessment) yang dilakukan


dengan melakukan pengujian penetrasi (penetration test) secara eksternal terhadap situs
http://crackme.cenzic.com. Tujuan dari pengkajian ini adalah untuk menemukan
kerentanan keamanan potensial pada aplikasi, yang memungkinkan dapat
disalahgunakan oleh pihak yang tidak berwenang, misalnya hacker atau cracker.

1.2. Ruang Lingkup

Pengujian penetrasi dilakukan melalui jarak jauh atau menggunakan saluran internet
(secara online) terhadap target situs http://crackme.cenzic.com. Skenario awal untuk
security assessment ini hanya diketahui alamat web situs target, sehingga informasi
lainnya yang tersedia selanjutnya diperoleh dari tahapan Security Assessment.

1.3. Timeline

Lamanya waktu untuk tahapan penetrasi test ini adalah sebagai berikut :
Kode Doc. : CM.CZ 18 - V 1.0
Start Time : Jumat, 23 Februari Jam 18.00
End Time : Minggu, 25 Februari Jam 23.00

4
II. LANDASAN TEORI

2.1. Metodologi
Menurut konsep sertifikasi CEH terdapat 5 tahapan yang digunakan untuk melakukan
pengujian penetrasi yaitu :

Gambar 2.1. : Tahapan Aktifitas CEH

1. Reconnaissance
Reconnaissance adalah suatu tahap persiapan dimana pengujian dilakukan dengan
mencari dan menemukan informasi sebanyak-banyaknya mengenai target atau
sasaran sistem yang akan diserang, sebelum rangkaian proses penyerangan
dilaksanakan.
2. Scanning
Scanning bertujuan untuk mencari celah yang memungkinkan attacker dapat
digunakan menemukan kelemahanan sistem dan aplikasi. Teknik Scanning
dilakukan dengan menggunakan tools yang tersedia. Jika Proses scanning berhasil
maka attacker akan mendapatkan informasi mengenai kelemahanan sistem, yang
selanjutnya akan dapat digunakan sebagai masukkan untuk memasuki atau
menyusupi sistem.
3. Gaining Access
Gaining Access adalah tahapan menyerang komputer atau sistem untuk
menguasainya. Tahapan ini merupakan tahapan penerobosan (penetration) setelah
berhasil mengetahui kelemahan yang ada pada komputer atau sistem korban melalui
tahapan scanning. Tahapan ini tidak selalu menggunakan tools atau alat yang
canggih, karena attacker bisa saja memanfaatkan kelemahan input biasa yang
tersedia pada aplikasi.

5
4. Maintaining Acces
Tahap ini adalah suatu taapan dimana setelah attacker yang telah berhasil memasuki
sistem, dimana attacker tersebut berusaha untuk tetap bertahan memperoleh hak
akses sistem tersebut. Pada pengujian ini dilakukan untuk mencari celah, dimana
selanjutnya attacker dapat mempertahankan aksesnya terhadap sistem.
5. Covering Tracks
Covering Track merupakan tahapan untuk menghilangkan jejak atau bukti ketika
sistem telah disusupi, dirusak atau diambil alih oleh attacker. Pengujian ini
dilakukan terhadap beberapa sisi sistem untuk mencari celah keamanan, dimana
memungkinkan attacker akan mampu menghilangkan jejak

Pengujian penetrasi (penetration test) dilakukan untuk mencari dan menemukan celah
kelemahan (vurnerability) pada sistem yang seringkali sisi keamanannya kurang
mendapat perhatian atau terlewati oleh pengembang sistem. Untuk tahapan pengujian
penetrasi http://crackme.cenzic.com ini dikembangkan dengan mengacu terhadap anatomi
cara hacking bekerja yang dijelaskan sebelumnya. Adapun langkah-langkahnya adalah
sebagai berikut :

Start
Footprinting
 http://netcraft.com
 http://htbridge.com/ssl

Scanning
Planning  Network Scanning (NMAP)
 Web Scanning (Acunetix Vurnerability
Scanner)

Exploitation Blackbox
SQL Map

Summary

Rekomendasi Perbaikan

End

Gambar 2.2. : Tahapan Aktifitas Security Asessment

6
Berdasarkan flow diatas, tahapan pertama yang dilakukan adalah merencanakan
aktifitas (planning) sebelum melakukan pengujian ke situs target. Sebelum melakukan
pengujian, dilakukan pengumpulan informasi yang berhubungan dengan target. Tahapan
ini terdiri footprinting dan scanning terhadap jaringan dan struktur aplikasi web. Setelah
didapatkan vurnerability sistem dan kemungkinan threat yang dapat dilakukan dari
proses scanning, exploitasi dilakukan menggunakan SQL Map dan metodologi black
box. Berdasarkan hasil exploitasi tersebut akan dilakukan summary dan pada akhirnya
diberikan rekomendasi perbaikan agar kerentanan di sistem dapat diperbaiki.

2.2. Security Goals


Pendefinisian keamanan sistem diperlukan sebagai parameter untuk memastikan bahwa
tujuan dari pengujian penetrasi keamanan telah tercapai atau tidak. Berikut ini adalah
deskripsi tujuan keamanan yang didefinisikan sesuai dengan kebutuhannya.

CODE DESCRIPTION
G-01 Kerahasiaan (Confidentiality)
Data yang bernilai sensitif di sistem terjamin kerahasiaannya.
G-02 Integritas Data (Data Integrity)
Data yang tersimpan di sistem atau yang bertukar informasi melalui suatu
jaringan terjamin keaslian dan kebenarannya. Data tersebut tidak pernah
dimodifikasi oleh pihak lain yang tidak berwenang.
G-03 Ketersediaan (Availability)
Data di sistem akan selalu tersedia saat diperlukan atau di akses.
G-04 Kontrol Akses (Access Control)
Sistem menjamin bahwa data yang memiliki nilai informasi penting hanya
dapat diakses oleh pihak yang benar. Sistem memberikan jaminan bahwa
setiap user memiliki role atau kewenangan dalam mengakses kesesuaian
informasi.
G-05 Kehandalan (Penggunaan Aplikasi)
Keamanan harus terkelola secara terstruktur dan terencana, serta tidak
menghambat proses bisnis (aktifitas Pemilu) 2. Menghilangkan
(meminimalisir) resiko dari aktifitas yang merugikan sistem

7
III. PEMBAHASAN

3.1. Perencanaan (Planning)


Tahapan perencanaan awal yang dilakukan bertujuan untuk mengumpulkan segala
informasi tentang target sebelum dilakukan pengujian ditahap selanjutnya.

3.1.1. Footprinting
Footprinting dilakukan untuk menggali informasi awal yang bersifat umum dan mencari
informasi range jaringan yang digunakan.

a) Netcraft.com
Netcraft.com adalah sebuah situs untuk melakukan monitoring terhadap website yang
ada di internet. Situs ini melakukan analisa terhadap ip address, web server dan sistem
operasi yang digunakan.

8
Gambar 3.1. : Netcraft Monitoring

Update Informasi terakhir mengenai http://crackme.cenzic.com diambil pada tanggal 6


Februari 2018. http://crackme.cenzic.com diketahui :

Sistem Operasi Server : Linux Centos 2.2.15


Web Server : Apache Trustwave Holdings Inc.
IP address Server : 204.13.201.47

b) htbridge.com/ssl
Dari situs http://htbridge.com/ssl didapatkan informasi dan penjelasan bahwa situs ini
belum menggunakan SSL. Fungsi SSL digunakan sebagai layanan keamanan pada

9
media komunikasi, agar setiap informasi yang bertukar secara online tidak dapat dengan
mudah terbaca.

Mekanisme SSL adalah untuk menjaga informasi sensitif selama dalam proses
pengiriman melalui Internet dengan cara dienkripsi, sehingga hanya penerima pesan
yang dapat memahami dari hasil enkripsi tersebut..

10
Gambar 3.2. : Htbridge Monitoring

3.1.2. Scanning
a). Network Scanning
Nmap (Network Mapper) merupakan tools yang berfungsi untuk melakukan port
scanning. Aplikasi ini digunakan untuk meng-audit jaringan yang digunakan oleh suatu
sistem. Dengan menggunakan tool ini, kita dapat melihat host yang aktif, port yang
terbuka, Sistem Operasi yang digunakan, dan feature-feature scanning lainnya.

11
Gambar 3.3. : NMAP (Port Scanning)

dari hasil port scanning menggunakan NMAP tersebut didapatkan informasi port yang
terbuka diantaranya :
 port 80/tcp : Default Web Server Port
 port 53/tcp : Domain Name Server Port
 port 111/tcp : TCP/UDP Port
 port 3306/tcp : Database Port (MySQL)
 port 443/tcp : Default HTTP Port (dari apache)
 port 554 : Default Tracert Route port

Serta perangkat diinformasikan perangkat firewall yang digunakan, yaitu “Fortinate


Fortigate 100d Firewall”.

Gambar 3.4. : NMAP Scanning (Firewall)

12
b) Web Scanning
Web Scanning dilakukan menggunakan Acunetix Web Vulnerability Scanner. Acunetix
merupakan tools yang dikembangkan untuk melakukan scanning vulnerabilities suatu
website. Alasan penggunaan tools ini yaitu kemampuannya untuk memberikan solusi
dari kelemahan yang ditemukan dan mengelola traceability dari setiap vulnerabilities di
suatu website. Versi acunetix yang digunakan adalah Acunetix Web Scanner 10.5
(consultant edition) .

Setelah proses scanning selesai (completed), ditemukan sejumlah threat untuk situs
http://crackme.cenzic.com. Dikategorikan berdasarkan level-nya ditemukan 34 threat
yang berada di high level, 22 di medium level, 26 low level serta 8 di informational level
(yang dapat diabaikan).

Adapun detail threatnya seperti di screen dibawah ini :

Gambar 3.5. : Acunetix Threat Level

13
Gambar 3.6. : Acunetix Information Gathering

14
Gambar 3.7. : Acunetix List Threat dan Level

1. High Level Threat


Berdasarkan hasil scanning diinformasikan 3 threat yang berada di level high. Threat
yang bearada high level harus dihilangkan karena akan berdampak massive terhadap
sistem atau data, seandainya attacker mengeksekusi serangan ini. Adapun 3 threat
tersebut yaitu : 3 High Threat adalah Blind SQL Injection, Cross site scripting dan SQL
injection.
a. Blind SQL Injection (Security Goals - G.01/G.02/G.03)
Merupakan teknik injeksi yang dilakukan tetapi tidak menampilkan pesan error
kepada attacker, tetapi mengembalian ke halaman iut sendiri atau menampilkan
keseluruhan, sebagian atau tidak menampilkan kontendari web. Jika url
dimanipulasi menghasilkan nilai true, maka akan menampilkan konten, tetapi
jika tidak url yang dimanipulasi menghasilkan nilai false, maka tidak memproses
request dari attacker.
b. Cross site scripting (Security Goals - G.01/G.02/G.03)
Cross Site Scripting (XSS) adalah kerentanan yang memungkinkan penyerang untuk

15
mengirim kode pemrograman dalam Java Script ke user lain. Sebuah browser tidak
dapat mengetahui script mana yang seharusnya diterima atau tidak. untuk mengetahui
serangan,maka akan dilakukan eksekusi script context user dan mengakses beberapa
cookies atau konfirmasi password dari browser.
c. SQL Injection (Security Goals - G.01/G.02/G.03)
Merupakan teknik untuk mengeksploitasi sebuah aplikasi web memakai data
yang diberikan atau disisipkan dalam query SQL. Cara kerjanya adalah dengan
memasukkan query SQL atau perintah (command) sebagai input yang
dimungkinkan melalui halaman web. Dimana pada halaman web mengambil
parameter dari user, lalu membuat query SQL ke dalam database. Salah satunya
adalah pada halaman login user, dimana pada halaman web akan membuat query
SQL ke database untuk memeriksa username dan password yang tepat.

Gambar 3.8. : Acunetix High Level Threat dan Link

Threat Link (Security Hole)


Blind SQL Injection crackme.cenzic.com/kelev/register/register.php
crackme.cenzic.com/kelev/php/login.php
Cross Site Scripting crackme.cenzic.com/kelev/php/login.php
crackme.cenzic.com/kelev/register/register.php
crackme.cenzic.com/view/updateloanrequest.php
SQL Injection crackme.cenzic.com/kelev/register/register.php
crackme.cenzic.com/view/updateloanrequest.php

16
2. Medium Level Threat

Gambar 3.9. : Acunetix Medium Level Threat dan Link

Sedangkan untuk Threat Medium Level ditemukan 6 kelompok threat yaitu :

a. Apache Httpd Remote Denial of Service (Security Goals - G.03, G.05)


DoS attack merupakan serangan yang bertujuan untuk melumpuhkan target
(hang, crash) sehingga dia tidak dapat memberikan layanan terhadap user.
Dalam hal ini attacker melakukan penyerangan secara langsung ke apache yang
merupakan aplikasi web server yang digunakan dalam sistem ini.
b. Application Error Message (Security Goals - G.01, G.05)
Jika user memberikan input karakter terhadap kolom yang tidak diizinkan oleh
aplikasi (dari bahasa pemrogramman) ataupun database, sistem akan
mengembalikan ke browser dengan menampilan dan memberikan informasi
perangkat yang digunakan oleh sistem tersebut.
Hal ini akan mengakibatkan attacker mengetahui perangkat apa saja yang
terinstall di sistme tersebut.
c. Directory Listing (Security Goals - G.01, G.04)
Directory Listing adalah fungsi web server yang menampilkan daftar semua file
jika tidak ada pengamanan file sepertyi file index atau default yang tersimpan di

17
direktori situs web tertentu. Tidak adanya konfigurasi ini keamanan untuk
mengakibatkan attacker dapat dengan mudah memperoleh file (dengan cara
mendownload) berdasarkan link directory yang tidak terproteksi.

Gambar 3.10. : Acunetix Site Stucture

d. HTML Form without CSRF protection (Security Goals - G.04)


Cross Site Request Forgery adalah salah satu vulnerability pada web Application
yang bekerja dengan cara mengeksploitasi perintah web dengan memanfaatkan
autentikasi yang dimiliki oleh korban. Pada implementasinya, attacker akan
melakukan injeksi terhadap suatu link yang berisi suatu perintah web URL pada
halaman tertentu agar diakses oleh korban. CSRF dapat dilakukan dikarenakan
suatu halaman web tidak melakukan filtering pada fungsi GET atau POST.
e. Slow HTTP Denial of Service Attack (Security Goals - G.03/G.05)
Memiliki kemiripan dengan Apache Httpd Remote Denial of Service yang
melakukan penyerangan terhadap web server aplikasi (apache), HTTPD
melakukan penyerangan terhadap sistem operasi melalui IP Address yang

18
digunakan oleh sistem. Tujuannya agar sistem operasi menjadi berat dan sulit
diakses oleh user, seolah-olah banyak user yang mengakses aplikasi.
f. User credentials are sent in clear text (Security Goals - G.03)
Tidak adanya penyandian misalnya enkripsi pada data yang bertukar melalui
jaringan atau data yang tersimpan di database mengakibatkan attacker dapat
membaca atau mengetahui dengan mudah, jika data tersebut sudah berhasil
didapatkan oleh attacker. Penggunaan pesan yang asli (cleartext) sangat
berpengaruh dengan aspek kerahasiaan data (confidentiality).

3. Low Level Threat

Gambar 3.10. : Acunetix Low Level Threat dan Link

Sedangkan untuk threat yang berada di posisi low level, diantaranya :

1) Clickjacking : X-Frame-Options header missing (Security Goals - G.04, G.05)


Clickjacking merupakan serangan yang bertujuan mencuri data pengguna. Serangan
ini mengirimkan perintah yang tidak valid kepada korban, agar korban dapat
memberikan informasi rahasia kepada attacker melalui internaksi web yang tidak
valid. serangan ini dilakukan attacker dengan menyisipkan suatu link yang salah
(milik attacker), misalnya menggunakan syntax iframe, agar korban mengakses
situs yang salah dan mengisi kolom yang salah.

19
2) Cookie without Http Only flag set (Security Goals - G.01, G.05)
Fungsi HTTP Trace yang aktif di web server dapat dimanfaatkan oleh attacker untuk
mencuri data penting, seperti cookies atau otentifikasi dengan melalui kerentanan yang
tersedia di web browser user.

Gambar 3.11. : Acunetix Cookies Vurnerability

3) Login Page password-guessing attack (Security Goals - G.01, G.05)


Tidak adanya proteksi pada halaman login aplikasi, mengakibatkan attacker dapat
mencoba terus menerus secara beruntun dengan menebak akses user, dalam hal ini
adalah username dan password. Attacker menggunakan aplikasi brute force atau
dictionary attack, untuk memasuki halaman login sistem menggunakan akses user
yang didapatkan dengan menebak otentifikasinya.

3.2. Exploitation
Berdasarkan informasi yang ditemukan melalui proses scanning, tahapan selanjutnya
adalah melakukan exploitasi berupa pengujian terhadap vurnerability yang ditemukan.
Pengujian perangkat lunak merupakan langkah yang dilakukan untuk menguji kualitas
dari suatu aplikasi. Pengujian ini dilakukan untuk memperbaiki kesalahan yang
ditemukan pada saat pembangunan aplikasi. Metode pengujian yang digunakan untuk
http://crackme.cenzic.com/ adalah Metode Black Box. Pengujian ini berfokus pada
persyaratan fungsional perangkat lunak yang memungkinkan analisis sistem
memperoleh kumpulan kondisi input yang akan mengerjakan seluruh keperluan
fungsional perangkat lunak.

20
Prioritas dilakukan terhadap 3 threat dengan posisi high level. Secara garis besar posisi
vurnerability untuk ke 3 threat tersebut sebagian memiliki lokasi yang sama yaitu :
 http://crackme.cenzic.com/kelev/register/register.php
 http://crackme.cenzic.com/kelev/php/login.php

a) Pengujian Blackbox (Security Goals - G.02/G.04/G.05)


Pengujian SQL Injection ini dilakukan dengan menginputkan tanda „ kepada form login
untuk mendapatkan celah keamanan sistem tersebut.
1) Pengujian Karakter String

Gambar 3.12. : Blackbox Testing di Menu Register

Setelah melakukan submit dengan memberikan nilai karakter yang tidak diizinkan oleh
aplikasi, target memberikan informasi aplikasi database dan sebagian nama field.

Gambar 3.13. : Konfirmasi Error saat aplikasi menerima ilegal karakter

Dari tampilan tersebut menginformasikan bahwa database yang digunakan adalah


MySQL dengan beberapa field seperti password (yang tidak terenkripsi), FirstName,
LastName dan Address.

21
2) Pengujian SQL Injection
Berdasarkan hasil scanning sebelumnya, diidentifikasi bahwa aplikasi memiliki
kerentanan terhadap SQL Injection. Untuk dilakukan pengujian SQL Injection
pada halaman login dengan menginjeksikan script SQL Injection yaitu :

' OR '1'='1

Hasilnya setelah diinputkan kode sql injection dan password diisi sembarang,
aplikasi secara langsung melakukan login ke aplikasi (bypass login). Hal ini
menjelaskan bahwa authentifikasi login user dapat di lewati, hal ini tentunya
sangat tidak aman karena pihak yang tidak berwenang dapat mengakses aplikasi,
meskipun tidak memiliki akses login.

Gambar 3.14. : By Pass Login Menggunakan SQL Injection

3) Pengujian Cross Site Scripting


Setelah melewati dapat melewati proses login menggunakan SQL Injection,
selanjutnya dilakukan pengujian Cross Site Scripting (XSS) untuk Link :
http://crackme.cenzic.com/kelev/php/accttransaction.php

Sample Script yang digunakan adalah sebagai berikut :


<script type="text/javascript"><!--windows.location =
"http://www.google.com"//--></script>

Script tersebut diinputkan di kolom range tanggal. Output dari script tersebut setelah
ditampilkan akan menghasilkan error di aplikasi.

Gambar 3.15. : Kode Error di Aplikasi akibat XSS [1]

22
Dengan menganalisa tampilan tersebut serta memodifikasi script dengan fungsi HTML
tersebut menjadi :
"<script type="text/javascript"> <b>YULIAN SANI</b>INI SALAH SATU
KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI APLIKASI.
<b>YULIAN SANI</b>INI SALAH SATU KERENTANAN AKIBAT TIDAK
ADANYA SANITIZE FILTER DI APLIKASI<b>YULIAN SANI</b>INI SALAH
SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI
APLIKASI<b>YULIAN SANI</b>INI SALAH SATU KERENTANAN AKIBAT
TIDAK ADANYA SANITIZE FILTER DI APLIKASI<b>YULIAN SANI</b>INI
SALAH SATU KERENTANAN AKIBAT TIDAK ADANYA SANITIZE FILTER DI
APLIKASI<b>YULIAN SANI</b>INI SALAH SATU KERENTANAN AKIBAT
TIDAK ADANYA SANITIZE FILTER DI APLIKASI </script>"

Aplikasi akan memproses perintah tersebut dan menampilkannya seperti pada gambar
berikut :

Gambar 3.16. : Tampilan XSS dengan Fungsi Bold HTML

Dari pengujian diatas disimpulkan bahwa XSS yang dapat diinjeksikan di aplikasi
mendukung fungsi HTML. Dari script sebelumnya dapat dikembangkan lagi menjadi

"<script type="text/javascript"> <img


src="http://mercadolivre.grandedesign.com.br/cursosonline/mascar
av/V-vendetta-mask-yellow-1pcs-free-shipping-100-real-tooken-
picture-in-stock-ship-today.jpg"> </script>"

23
Gambar 3.17. : Tampilan XSS dengan Fungsi Image HTML

b) Injection Menggunakan SQL MAP (Security Goals - G.01/G.03/G.04)


Dari parameter field yang diperoleh dari tahapan sebelumnya pengujian selanjutnya
dilakukan dengan menggunakan tools SQLMAP, untuk mendapatkan data dan
informasi yang lebih detail. SQLMAP adalah tools opensource yang mendeteksi dan
melakukan exploit pada bug SQL injection secara otomatis. dengan melakukan serangan
SQL injection seorang attacker dapat mengambil alih serta memanipulasi sebuah
database di dalam sebuah server.

24
Gambar 3.18 : NMAP Scanner

Berdasarkan parameter yang sudah ditemukan, dilakukan scanning terhadap link :


crackme.cenzic.com/kelev/view/updateloanrequest.php

Gambar 3.19 : NMAP Script execution [1]

Dari hasil scanning tersebut, didapatkan sejumlah informasi yaitu sistem operasi web
server yang digunakan, versi apache, sistem operasi DBMS dan versi DBMS.

Gambar 3.20 : Output NMAP Script execution [1]

Proses selanjutnya melakukan scanning dengan menambahkan perintah –batch –


current --db yang berfungsi untuk menemukan database yang tersimpan di sistem
tersebut.

25
Gambar 3.21 : NMAP Script execution [2]

dari hasil scanning diperoleh database dengan nama bank.

Gambar 3.22 : Output NMAP Script execution [2]

26
IV. ANALISA SISTEM
Berdasarkan tahapan scanning dan exploitasi yang dilakukan sebelumnya, disimpulkan
beberapa kesimpulan untuk crackme.cenzic.com saat ini diantaranya :
1. Dari hasil port scanning menggunakan NMAP tersebut didapatkan informasi port
yang digunakan diantaranya :
 port 80/tcp : Default Web Server Port
 port 53/tcp : Domain Name Server Port
 port 111/tcp : TCP/UDP Port
 port 3306/tcp : Database Port (MySQL)
 port 443/tcp : Default HTTP Port (dari apache)
 port 554 : Tracert route

port diatas merupakan port default yang digunakan saat aplikasi terinstall di sistem.
Hal ini mengasumsikan belum adanya konfigurasi atau masih digunakan konfigurasi
standar dalam settingan web server, aplikasi, database.

2. Saat ini sistem operasi server yang digunakan adalah CentOS Centos versi 2.2.15,
sedangkan versi terbaru Centos adalah 7.4-1708. Hal ini menginformasikan bahwa
sistem operasi yang digunakan adalah sistem operasi yang belum dipatch atau
update.
3. Berdasarkan proses exploit menggunakan SQL MAP didapatkan versi apache yaitu
2.4.29, sedangkan versi Apache terbaru adalah 7.12. hal ini juga menginformasikan
bawah versi web server yang digunakan belum dipatch atau update.
4. Berdasarkan Acunetix Scanning didapatkan beberapa kategori threat diantaranya :
 34 threat yang berada di high level
 22 di medium level
 26 low level
 8 di informational level

Dari 34 kelompok threat ini didominasi oleh serangan SQL Injection, Cross Site
Scripting (XSS Atack) dan Blind SQL Injection. Hal ini mengindikasikan bahwa
pengembangan secure code kurang diperhatikan dalam pengembangan aplikasi.

27
Input pada aplikasi masih menerima sejumlah karakter yang seharusnya tidak
diizinkan oleh aplikasi.

3. Berdasarkan proses footprinting dan exploit, penggunaan enkripsi belum


sepenuhnya diterapkan pada sistem. Hal ini disimpulkan dari password tampil (Field
Password) yang yang ditampilkan jika aplikasi mengalami error.

Gambar 4.1. : Konfirmasi Error di Target

Selain itu SSL pada aplikasi belum diterapkan. Hal ini berdampak bahwa pertukaran
data melalui jaringan masih memungkinkan disadap (sniffing) beberapa perangkat
tools (misalnya wireshark atau chainable).

28
IV. REKOMENDASI PERBAIKAN KEAMANAN SISTEM

Berdasarkan analisa dan temuan melalui tahapan penetration test, direkomendasikan


beberapa usulan perbaikan sistem yaitu :

1. Merubah default port di Apache dan Database


Berdasarkan informasi yang ditemukan pada tahap scanning, port yang digunakan untuk
konfigurasi apache adalah port 80. Port 80 adalah port umum yang biasa digunakan oleh
aplikasi web. Rekomendasi untuk mengubah port bertujuan untuk menghindari scanning
atau exploitasi dari tools attacker yang langsung menyerang port 80.

Gambar 5.1. : Informasi Request Header di Acunetix

Selain itu port default untuk MySQL adalah 3306. Port ini direkomendasikan untuk
dirubah, karena dengan mengetahui nilai port 3306 attacker dapat langsung
berasumsi bahwa database yang digunakan adalah MySQL.

2. Patch Sistem Operasi Server


Berdasarkan situs resmi-nya https://www.centos.org/, sistem operasi Linux Centos
versi terbaru adalah Centos 7.4-1708. Sedangkan Sistem Operasi yang digunakan
untuk crackme.cenzic.com adalah Centos versi 2.2.15. Patch Sistem Operasi
direkomendasikan untuk dilakukan secara berkala untuk menutup celah keamanan
(security hole), adanya bugs, update penambahan fitur serta memperbaiki
performance yang belum tersedia di versi sistem operasi yang lama.

3. Upgrade Web Server


Salah satu vurnerability yang ditemukan melalui proses scanning, adalah pada web
server (memungkinkan untuk diserang oleh Dos Attack dikarenakan web server

29
masih menggunakan versi lama). Serangan DoS adalah jenis serangan terhadap
sebuah komputer atau server di dalam jaringan internet dengan cara menghabiskan
sumber (resource) yang dimiliki oleh komputer tersebut sampai komputer tersebut
tidak dapat menjalankan fungsinya dengan benar sehingga secara tidak langsung
mencegah pengguna lain untuk memperoleh akses layanan dari komputer yang
diserang tersebut.

Untuk menghidari DOS Attack, selain melakukan patch pada sistem operasi, perlu
dilakukan patch atau update terhadap Apache (yang merupakan aplikasi web server).
Dari situs resminya https://httpd.apache.org/, versi terbaru apache saat ini adalah
Apache httpd 2.4.29 .

Gambar 5.2. : Informasi Slow HTTP Dos di Acunetix

4. Melakukan Review dan Secure Code terhadap Aplikasi


Untuk meminimalkan ancaman dan serangan, pengembang aplikasi (Programmer)
harus menerapkan langkah keamanan implementasi dan mengetahui kemungkinan
hal-hal yang tidak diharapkan (ancaman) pada saat program dijalankan. Berikut ini
adalah rekomendasi yang dapat digunakan dalam tahapan implementasi, untuk
mengidentifikasi atau menghindari celah keamanan terhadap suatu aplikasi berbasis
web.

a) Membatasi Karakter (sanitize filters)


Tujuan membatasi karakter-karakter tertentu bertujuan untuk mengantisipasi pihak-
pihak yang tidak berwenang untuk menyisipkan karakter yang berbahaya (injection

30
code). Konsep ini terbilang relatif dasar dan mudah, tetapi seringkali terlupakan oleh
para pengembang sistem.
Dengan membatasi karakter, dapat mencegah ancaman SQL injection, Blind SQL
dan Cross-site Scripting.
Contoh :
 addslashes : Fungsi ini akan melakukan block terhadap masukkan
karakter berupa tanda kutip („) dan menggantinya dengan
karakter garis miring (/).
 str_replace : Fungsi untuk me-replace karakter

b) Menggunakan Fungsi htmlspecialchars()


Untuk mencegah terjadinya teknik hacking cross-site scripting xss atau javascript
injection pencegahannya dapat dilakukan menambahkan fungsi htmlspecialchars().
Hal ini akan membuat perintah html maupun javascript memiliki terproses sebagai
data string sehingga tidak akan dieksekusi oleh browser.
Contoh : htmlspecialchars($_POST['address'])

c) Membatasi Jumlah Karakter (maxlength)


Pembatasan jumlah karakter dalam media input sangat penting, hal ini dilakukan
untuk mencegah attacker melakukan injeksi dengan menginputkan sejumlah script
seperti HTML atau javascript pada suatu textbox.
Contoh : <input name=”Address” maxlength=”25″ />

d) Variasi penamaan variabel Karakter pada input


Dengan melakukan variasi penamaan variabel pada listing code aplikasi dapat
mempersulit kinerja dari beberapa tools yang digunakan oleh attacker untuk
menyerang dan menemukan kelemahan sistem. Variasi penamaan variabel karakter
ini sebagai solusi yang dapat memperlambat serangan serangan Brute Force Attack
atau Dictionary Attack.
Contoh : <input name=”_txt_reg_address1” />

31
e) Mengkonfigurasi .htaccess
Konfigurasi Htaccess dilakukan untuk menyembunyikan menyembunyikan file
“index.php” atau direktori lainnya dari URL . Htaccess seringkali digunakan
terhadap website yang memiliki struktur direktori yang banyak. Dengan menerapkan
htaccess maka direktori-direktori atau variabel yang muncul pada address bar
browser akan disembunyikan. Hal dilakukan untuk meminimalisir attacker untuk
mendapatkan struktur direktori, variabel yang selanjutnya dapat digunakan untuk
menemukan celah keamanan sistem lainnya.

Gambar 5.3. : Sample Penerapan Htaccess

Beberapa manfaat lainnya yang dapat dilakukan dengan mengkonfigurasi file


.htaccess, diantaranya adalah sebagai berikut :
1. Mencegah attacker nmelakukan akses terhadap direktori
2. Me-Redirect attacker dari suatu halaman atau folder ke halaman atau folder lain
3. Memberikan proteksi pengamanan (misalnya password) pada direktori
4. Merubah default halaman index pada folde tertentu

f). Session dan Cookies timeout


Penggunaan timeout pada session atau cookies terutama untuk otentifikasi login.
Session merupakan penanda dari sisi server dan akan hilang secara otomatis jika
browser ditutup, sedangkan cookies adalah pengenalan dari sisi browser dan bila
tidak diset timeout maka status akan selalu login (pada pengenalan login). Cookies
akan menjadi ancaman ketika user yang telah selesai menggunakan sistem tidak
melakukan logout dan meninggalkan komputer dalam keadaan menyala. Orang yang
tidak bertanggung jawab dapat menggunakan komputer yang digunakan oleh user
sebelumnya dan mengakses aplikasi yang sama dengan akses yang bukan hak
aksesnya.

32
5. Perbaikan pada Kolom Input
Perbaikan di beberapa kolom input dilakukan guna meminimalisir kesalahan input
oleh user. Kesalahan bisa saja disalahgunakan oleh hacker. Sebagai contoh temuan
di beberapa kolom, misalnya pada tanggal lahir di menu registrasi user. Kolom
tersebut direkomendasikan untuk diganti menggunakan datepicker agar input user
bernilai valid.

Jika kolom tanggal lahir berupa textbox atau freetext seperti sebelumnya terjadinya
kesalahan input user akan lebih besar dibandingkan menggunakan datepicker yang
format tanggalnya sudah diatur oleh aplikasi. (Misalnya user mengisi tanggal 31
Februari, tetapi tanggal tersebut tidak pernah ada).

(a) (b)

Gambar 5.4. : (a) Kolom Input tanggal di aplikasi, (b) sample datepicker box

6. Melengkapi web dengan SSL (Secure Socket Layer) / HTTPS


Saat ini web http://crackme.cenzic.com/kelev/ belum dilengkapi dengan SSL
sehingga pertukaran data melalui jaringan internet tidak terproteksi. Hal ini
mengakibatkan memungkinkan attacker dapat melakukan penyadapan (sniffing)
misalnya menggunakan tools wireshark atau chainable.

Gambar 5.5. : Link Address Tanpa SSL

Dengan menggunakan SSL informasi sensitif selama dalam proses pengiriman


melalui Internet akan dienkripsi, sehingga hanya penerima pesan yang dapat

33
memahami dari hasil enkripsi tersebut. Hal ini sangat penting, karena informasi
yang kita kirimkan di Internet membutuhkan proses perjalanan dari komputer ke
komputer sampai mencapai server tujuan.

Ketika sertifikat SSL digunakan, informasi menjadi tidak dapat terbaca oleh
siapapun kecuali ke server yang memang dituju saat mengirim informasi tersebut.
Hal ini melindungi informasi tersebut dari hackers dan pencuri identitas.

7. Penggunaan Enkripsi

Sebagian data yang disubmit belum menggunakan enkripsi. Misalnya untuk data
yang bersifat rahasia seperti username atau password. Dari hasil pengumpulan data
sebelumnya database yang digunakan adalah MySQL Server. MySQL menyediakan
enkripsi data seperti MD5, SHA, Password atau menggabungkan algoritma yang
sudah tersedia.

Misalnya contoh berikut user menggunakan p4ssw0rd2008 sebagai password


loginnya dan dilakukan enkripsi menggunakan algoritma hash sesuai algoritma
tersedia di MySQL.

Gambar 5.6. : Implementasi Enkripsi di MySQL

8. Menyembunyikan Error Aplikasi

Di beberapa page yang menyediakan textbox sebagai media input, jika user
memberikan input text yang tidak dapat diproses aplikasi atau database, maka
prosesnya akan mengembalikan ke browser dengan menampilkan error dan
memberikan sejumlah informasi yang cukup penting. Rekomendasi untuk

34
menyembunyikan error ini sebagai tindakan untuk meminimalisir informasi
perangkat sistem yang digunakan.

Sebagai contoh pada menu registrasi, saat setelah disubmit dengan input
menggunakan perintah blind injection aplikasi menampilkan error “Cannot query
the database. You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near …. “.

Gambar 5.7. : Informasi Error yang tampil di Site

Dari keterangan tersebut, diinformasikan bahwa database yang digunakan oleh


http://crackme.cenzic.com adalah MySQL. Dengan menginformasikan database
yang digunakan hacker dapat mencari kelemahan MySQL sebagai langkah untuk
menyerang aplikasi.

9. Menambahkan Captcha
Captcha (Completely Automated Public Turing test to tell Computers and Humans
Apart) adalah sejenis konfirmasi challenge-respons untuk memastikan bahwa
respon yang dihasilkan hanya boleh dibuat oleh manusia dan bukannya komputer.
Dengan arti kata lain, CAPTCHA adalah pengesahan kata ujian yang dimasukkan
dari suatu bentuk sign-up.

Rekomendasi penggunaan captcha dapat dipasang di menu registrasi


(http://crackme.cenzic.com/kelev/register/register.php) dan login
(http://crackme.cenzic.com/kelev/php/login.php), untuk menghindari registrasi yang
dilakukan oleh BOT serta menghindari dictionary atau brute force attack saat login.

35
Gambar 5.8. : Penerapan CAPTCHA

10. Konfirmasi Registrasi Via Email atau Kode Aktivasi SMS


Di era teknologi informasi yang semakin berkembang pesat saat ini, salah satu
keuntungan penggunaan alat Teknologi informasi saat ini adalah kemudahannya
dalam integrasi antara suatu perangkat dengan perangkat lainnya. Untuk
menghindari penggunaan akses oleh pihak yang tidak berwenang, saat registrasi user
dapat diintegrasikan dengan email pribadi atau nomor handphone user tersebut. User
harus menginputkan kode yang diterima oleh handphonenya. Hal ini bertujuan
untuk memudahkan penelusuran terhadap pengguna sistem, bahwa pengguna sistem
adalah user yang benar-benar valid.

Dengan memanfaatkan kode konfirmasi via SMS, maka dapat memimalisir


penyalahan gunaan sistem oleh pihak yang tidak bertanggung jawab, karena setiap
user yang telah teregistrasi telah memberikan nomor kontaknya.

Gambar 5.9. : Kode Authentifikasi via SMS

36
REFERENSI

1. IATAC Tools Vulnerability Assessment : Information Assurance Tools Report,


SixthEdition May 2, 2011

2. NIST Special Publication 800-42, Guideline on Network Security Testing, NIST,


2003

3. Oriyano, Sean-Philip, CEH V8 : Certified Ethical Hacker Version 8, Study Guide,


Sybex 2014

4. OWAPS, OWASP Top 10 - 2017 The Ten Most Critical Web Application Security
Risks
https://www.owasp.org/images/7/72/OWASP_Top_10-017_%28en%29.pdf.pdf

5. Offensive security – Sample Penetration Testing Report


https://www.offensive-security.com/reports/sample-penetration-testing-report.pdf

6. S’to, Certified Ethical Hacker 100% Illegal, Jasakom,2009

7. SANS Institute, Writing a Penetration Testing Report


https://www.sans.org/reading-room/whitepapers/bestprac/writing-penetration-
testing-report-33343

37

You might also like