Finish Start
4.1 IMPLEMENTASI SISTEM
Dari desain sistem yang telah dibuat sebelumnya, maka dapat di implementasikan seperti beberapa contoh tampilan berikut :
1. Tampilan utama
Dibawah ni merupakan tampilan awal pada addons vulnerability
scanner :
Gambar 4.1 Tampilan Menu Utama
Pada tampilan utama terdiri atas 4 bagian yang dibatasi oleh 3 garis. Bagian pertama adalah nama addons tersebut adalah SQL
INJECTION dimana pada bagian tersebut merupakan scanning web
menggunakan metode SQL INJECTION.
Bagian kedua adalah menu yang terdiri atas 4 submenu utama yaitu XSS SCANNER pada bagian tersebut merupakan scanning web dengan menggunakan pola pendeteksian XSS INJECTION. Bagian ketiga adalah hasil proses INFO dimana pada info tersebut terdapat informasi tentang domain dan informasi lengkap tentang client. Bagian keempat adalah menu COOKIE dimana pada menu tersebut akan menampilkan cookies hasil dari scanning web tersebut. Tampilan menu utama dibuat
dengan warna dasar adalah biru dengan text berwarna putih karena terlihat sederhana, dan mudah digunakan.
2. Halaman Scanning SQL Injection pada URL
Halaman berikut berfungsi untuk melakukan pencarian kelemahan alamat URL pada tab yang sedang dengan mengakses alamat URL yang sudah dimodifikasi dengan menambahkan simbol (‘) setelah simbol (=) pada alamat URL yang didapat dari alamat URL pada tab yang sedang aktif.
Gambar 4.2 Halaman Scanning SQL Injection pada URL
Berikut adalah algoritma Pseudo Code dari Proses Scanning SQL Injection pada URL :
1. call start_elapsed_time() dan store to mulai_proses
2. deklarasi jumlah_link_sudah_diperiksa and set 0
3. deklarasi jumlah_link_sudah_dideteksi and set 0
4. deklarasi variabel html and set null
5. set currentURL = alamat URL pada tab yang aktif
6. call check_sql_inject(currentURL) and store to hasil_scan_SQLi
7. set jumlah_link_sudah_diperiksa + 1
8. if hasil_scan_SQLi is “KOSONG” then
a.set temp_html = “URL aman”
9. else
a.set temp_html = hasil_scan_SQLi
b.set jumlah_link_sudah_dideteksi + 1
11. report jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi
12. report and call get_elapsed_time(mulai_proses,selesai_proses)
Berikut adalah potongan source code dari Proses Scanning SQL Injection pada URL :
Addons mengambil URL pada tab yang sedang aktif sebagai data
inputan. URL tersebut dicari kelemahannya terhadap injeksi SQL oleh fungsi check_sql_inject. Jika hasil dari fungsi adalah “kosong” mak alamat
URL tersebut aman dan apabila terdapat hasil maka aplikasi akan
memunculkan alamat URL yang sudah dimodifikasi yang dimungkinkan terdapat kelemahan.
Sehingga oleh aplikasi tersebut akan langsung dimunculkan hasil akhir berupa URL baru dari hasil scanning dimana pada URL tersebut merupakan alamat yang memiliki kelemahan pada SQL INJECTION.
3. Halaman Scanning SQL Injection pada PAGE
Menu berikut ini berfungsi untuk melakukan pencarian kelemahan halaman URL pada page yang sedang aktif terhadap injeksi SQL dengan cara mengakses semua alamat URL yang didapat pada page tersebut dan selanjutnya ditambahkan simbol (‘) setelah simbol (=) pada semua alamat
URL yang ditemukan.
Gambar 4.4 Halaman Scanning SQL Injection pada PAGE
Berikut adalah Pseudo Code dari Proses Scanning SQL Injection pada
PAGE :
1. call show_loading()
2. call start_elapsed_time() dan store to mulai_proses
3. deklarasi jumlah_link_sudah_diperiksa and set 0
4. deklarasi jumlah_link_sudah_dideteksi and set 0
5. set currentURL (target) = alamat URL pada tab yang aktif
6. call get_all_urls(currentURL) and store to array_URL
7. loop i from 0 until length of array_URL
1.if array_URL[i] have word “#####POST#####” then
1. call check_sql_inject_post(array_URL[i]) and store to
hasil_scan_SQLi
2. set jumlah_link_sudah_diperiksa + +
2.else
1. call check_sql_inject(array_URL[i]) and store to hasil_scan_SQLi
2. set jumlah_link_sudah_diperiksa + 1
1.set temp_html = “URL aman”
9. else
1.set temp_html = hasil_scan_SQLi
2.set jumlah_link_sudah_dideteksi + 1
10. call stop_elapsed_time()
11. report jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi
12. print and call get_elapsed_time(mulai_proses,selesai_proses)
Berikut adalah Potongan Soure Code dari Scanning page
Gambar 4.5 Potongan Code Scanning SQL Injection pada PAGE
Pada proses diatas alamat URL tersebut akan dicari pada URL yang terdapat pada Page URL tersebut dengan fungsi get_all_urls. Semua alamat URL yang didapat akan diperiksa apakah memiliki kelemahan
check_sql_inject_post. Jika hasil pencarian dari semua alamat URL yang ditemukan kosong maka aplikasi menyatakan halaman URL tersebut aman jika tidak maka addons akan menunjukkan beberapa alamat URL yang memiliki kelemahan terhadap injeksi SQL.
4. Halaman Scanning SQL Injection pada SITE
Menu ini berfungsi untuk melakukan pencarian kelemahan website pada tab yang sedang aktif terhadap injeksi SQL dengan cara mengakses seluruh alamat URL yang didapat pada website tersebut dan selanjutnya dimodifikasi dengan menambahkan simbol (‘) setelah simbol (=) pada semua alamat URL yang ditemukan. Pada menu kali ini pencarian dilakukan secara site fast dimana akan berhenti bila sudah ditemukan satu alamat URL pada website tersebut yang memiliki kelemahan terhadap injeksi SQL.
Gambar 4.6 Halaman Scanning SQL Injection pada SITE (FAST)
Pada submenu terakhir sama dengan submenu Site Fast tetapi proses pencarian akan berhenti saat tidak ditemukan alamat URL yang memiliki kelemahan terhadap injeksi SQL.
Gambar 4.7 Halaman Scanning SQL Injection pada SITE (FULL)
Berikut adalah Pseudo Code dari Proses Scanning SQL Injection pada
SITE :
1. Panggil fungsi call start_elapsed_time() untuk mulai_proses 2. deklarasi jumlah_link_sudah_diperiksa and set 0
3. deklarasi jumlah_link_sudah_dideteksi and set 0 4. deklarasi variable pendukung
5. looping (while)
1.if mengakses var akan_diakses dan lakukan break a. set temp_url = shift from akan_diakses
b. set ada_yang_sama = false
c. loop i from 0 until length of sudah_diakses 2.if temp_url = sudah_diakses[i] then
a. ada_yang_sama = true
d. if ada_yang_sama = false and temp_url dengan menggunakan "POST" then
3.call get_all_urls(temp_url) and store to hasil_sementara 4.push temp_url to sudah_diakses
e. loop i from 0 until length of hasil_sementara 5.set ada_yang_sama = false
6.loop j from 0 until length of sudah_diakses a. if hasil_sementara[i] = sudah_diakses[j then
1.ada_yang_sama = true 7.if ada_yang_sama = false then
a. push hasil_sementara[i] to akan_diakses b. set ada_yang_sama2 = false
c. loop k from 0 until length of sudah_dicari 1.if hasil_sementara[i] = sudah_dicari[k] then
a.ada_yang_sama2 = true
d. if hasil_sementara[i] dengan menggunakan “POST” then 1.if ada_yang_sama2 = false then
a.call check_sql_inject_post(hasil_sementara[i]) and store to hasil_scan_SQLi
b.set jumlah_link_sudah_diperiksa + 1 c.push hasil_sementara[i] to sudah_dicari e. else
1.if ada_yang_sama2 = false then
a.call check_sql_inject(hasil_sementara[i]) and store to hasil_scan_SQLi
b.set jumlah_link_sudah_diperiksa + 1 c.push hasil_sementara[i] to sudah_dicari f. if hasil_scan_SQLi tidak “KOSONG” then
1. `set temp_html += hasil_scan_SQLi 2. set jumlah_link_sudah_dideteksi + 1 3. if batas = 1then
f. set berhenti = true g. berhenti
Berikut Potongan Source Code :
A p l i k a
Aplikasi pada saat proses akan dimunculkan newtab dimana dalam newtab ini aplikasi diproses dan ditampilkan hasil scanning. Aplikasi mencari root dari alamat URL tersebut. Alamat root dimasukkan ke antrian pertama untuk dicari semua alamat URL pada halaman URL tersebut dengan fungsi (get_all_urls).
Setelah itu addons akan memeriksa setiap alamat URL untuk dimasukkan ke antrian untuk dicari semua lamat URL pada halaman URL dan mencari kelemahan terhadap injeksi SQL. Dalam submenu ini aplikasi berhenti pada dua keadaan yaitu saat aplikasi mencari dalam satu website secara cepat (sitefast) atau secara penuh (full). Jika secara cepat, aplikasi berhenti jika sudah menemukan sebuah alamat URL yang memiliki kelemahan.
Tetapi jika Site Full, maka aplikasi akan berhenti jika semua link sudah diperiksa untuk dicari semua alamat URL pada halaman URL dan juga diperiksa untuk kelemahan terhadap injeksi SQL.
5. Halaman Scanning XSS Injection pada URL
Halaman ini berfungsi untuk melakukan pencarian kelemahan alamat URL pada tab yang sedang aktif terhadap injeksi XSS dengan mengakses alamat URL yang telah dimodifikasi dengan menambahkan
script(<script>document.write('<strong><em><s>XSS_INJECTION
</s></em></strong>');</script>) setelah simbol (=) pada alamat URL yang didapat dari alamat URL pada tab yang sedang aktif.
Berikut adalah Pseudo Code dari Proses Scanning XSS Injection pada URL :
1. call start_elapsed_time() dan store untuk mulai_proses
2. deklarasi jumlah_link_sudah_dideteksi and set 0
3. deklarasi variabel html and set null
4. set currentURL = alamat URL pada tab yang aktif
5. call check_xss_inject(currentURL) and simpan hasil_scan_XSS
6. set jumlah_link_sudah_diperiksa + 1
7. if hasil_scan_ XSS is “KOSONG” then
a.set temp_html = “URL aman”
8. else
b. set temp_html = hasil_scan_ XSS
c.set jumlah_link_sudah_dideteksi + 1 9. panggil fungsi stop_elapsed_time()
10.tampilkan jumlah_waktu_diperiksa and jumlah_link_sudah_dideteksi
Berikut adalah Potongan Source Code :
Gambar 4.9 Halaman Scanning XSS Injection pada URL
Gambar 4.10 Potongan Code Scanning XSS Injection pada URL
Alamat URL tersebut dicari kelemahannya terhadap injeksi XSS oleh fungsi check_xss_inject. Jika hasil dari fungsi adalah “kosong” berarti alamat URL tersebut aman.
6. Halaman Scanning XSS Injection pada PAGE
Halaman ini berfungsi untuk melakukan pencarian kelemahan halaman URL pada page yang sedang aktif terhadap injeksi XSS dengan cara mengakses semua alamat URL yang didapat pada page tersebut dan selanjutnya di
<s> XSS_INJECTION</s></em></strong>’;</script>) setelah simbol (=) pada semua alamat URL yang ditemukan.
Gambar 4.11 Halaman Scanning XSS Injection pada PAGE
Berikut adalah Pseudo Code dari Proses Scanning XSS Injection pada PAGE :
1. Panggil start_elapsed_time() dan store to mulai_proses
2. deklarasi jumlah_link_sudah_dideteksi and set 0
3. deklarasi variabel html and set null
4. deklarasi array_URL sebagai array
5. set currentURL
6. call get_all_urls(currentURL)
7. perulangan dari 0 sampai panjang array_URL
1. if array_URL[i] adalah “#####POST#####” then
1. call check_xss_inject_post(array_URL[i]) and simpan
hasil_scan_XSS
2. set jumlah_link_sudah_diperiksa + 1 2. else
1. call check_xss_inject(array_URL[i]) and store to
hasil_scan_XSS
2. set jumlah_link_sudah_diperiksa + 1
8. if hasil_scan_XSS is “KOSONG” then
a.set temp_html = “URL aman”
9. else
a.set temp_html = hasil_scan_XSS
b. set jumlah_link_sudah_dideteksi + +
10.call stop_elapsed_time()
11.tampilkan jumlah_link_sudah_diperiksa and
jumlah_link_sudah_dideteksi
12.tampilkan get_elapsed_time(mulai_proses,selesai_proses)
Berikut adalah Potongan Souce Code
Aplikasi mengambil alamat URL pada tab yang sedang aktif
Sebagai data masukan. Alamat URL tersebut akan dicari semua alamat URL yang terdapat pada halaman tersebut dengan fungsi
get_all_urls. Semua alamat URL yang didapat akan dicari apakah
memiliki kelemahan terhadap injeksi XSS oleh fungsi check_xss_inject
(alamat URL mengirim nilai dengan metode GET) dan
check_xss_inject_post (alamat URL mengirim nilai dengan metode
POST).
Jika hasil pencarian dari semua alamat URL yang ditemukan kosong maka aplikasi menyatakan URL tersebut aman jika bila memang terdeteksi maka aplikasi akan menunjukkan beberapa alamat URL yang memiliki kelemahan terhadap injeksi XSS.
7. Halaman Scanning XSS Injection pada SITE
Halaman ini berfungsi untuk melakukan pencarian kelemahan
website pada tab yang sedang aktif terhadap injeksi XSS dengan cara
mengakses semua alamat URL yang didapat pada website tersebut dan selanjutnya ditambahkan (<script>document.write ('<strong><em><s> XSS_INJECTION</s></em></strong>');</script>) setelah simbol (=) pada semua alamat URL yang ditemukan. Pada menu kali ini pencarian dilakukan secara cepat dalam arti pencarian akan berhenti bila sudah ditemukan satu alamat URL pada website tersebut yang memiliki kelemahan terhadap injeksi XSS.
Pada submenu terakhir sama dengan submenu sebelumnya tetapi proses pencarian tidak berhenti saat ditemukan satu alamat URL yang memiliki kelemahan terhadap injeksi XSS melainkan proses pencarian akan berhenti jika tidak lagi ada alamat URL dari semua alamat URL yang ditemukan dalam website tersebut yang belum diproses.
Gambar 4.14 Halaman Scanning XSS Injection pada SITE FULL
Berikut adalah Pseudo Code dari Proses Scanning XSS Injection pada SITE
1. call start_elapsed_time() dan store to mulai_proses
2. deklarasi jumlah_link_sudah_dideteksi dan set 0
3. set rootURL = alamat URL pada tab yang aktif
4. set path_rootURL = rootURL.substring(0,rootURL.lastIndexOf('/') +
1)
5. set variable pendukung
6. deklarasi temp_url, hasil_scan_XSS and set to null
7. perulangan (while)
a. if akan_diakses = berhenti
b. set temp_url = shift from akan_diakses
c. set ada_yang_sama = false
d. loop i from 0 until length of sudah_diakses
1. if temp_url = sudah_diakses[i] then
a. ada_yang_sama = true
e. if ada_yang_sama = false and temp_url have word
"#####POST#####" (menggunakan metode post) then
1. call get_all_urls(temp_url) dan simpan hasil_sementara
2. masukan temp_url to sudah_diakses
1. set ada_yang_sama = false
2. loop j from 0 sampai panjang sudah_diakses
a. if hasil_sementara[i] = sudah_diakses[j then
2. ada_yang_sama = true
3. if ada_yang_sama = false then
a. masukan hasil_sementara[i] to akan_diakses
b. set ada_yang_sama2 = false
c. loop k from 0 until length of sudah_dicari
1. if hasil_sementara[i] = sudah_dicari[k] then
a.ada_yang_sama2 = true
d. if hasil_sementara[i] have word “#####POST#####" then
1. if ada_yang_sama2 = false then
a.check_xss_inject_post(hasil_sementara[i]) and store to hasil_scan_XSS
b. set jumlah_link_sudah_diperiksa + 1
c.push hasil_sementara[i] to sudah_dicari e. else
1. if ada_yang_sama2 = false then
a.call check_xss_inject(hasil_sementara[i]) and store to hasil_scan_XSS
b. set jumlah_link_sudah_diperiksa + 1
c.push hasil_sementara[i] to sudah_dicari
g. if hasil_scan_XSS not “KOSONG” then
1. set temp_html += hasil_scan_XSS
2. set jumlah_link_sudah_dideteksi + 1
3. if batas = 1then
a. set berhenti = true
b. break
8. call stop_elapsed_time()
9. tampilkan jumlah_link_sudah_diperiksa and
jumlah_link_sudah_dideteksi
Berikut adalah Potongan Source Code :
Gambar 4.15 Potongan Code Scanning XSS Injection pada SITE
Aplikasi mencari root dari alamat URL tersebut. Alamat root dimasukkan ke antrian pertama untuk dicari semua alamat URL pada halaman URL tersebut dengan fungsi get_all_urls. Setelah itu aplikasi akan memeriksa setiap alamat URL untuk dimasukkan ke antrian untuk dicari semua lamat URL pada halaman URL jika belum dicari dan mencari kelemahan terhadap injeksi XSS oleh fungsi check_xss_inject (alamat URL mengirim nilai dengan metode GET) dan check_xss_inject_post (alamat
URL mengirim nilai dengan metode POST).
Dalam submenu ini aplikasi berhenti pada dua keadaan yaitu saat aplikasi mencari dalam satu website secara cepat atau secara penuh. Jika
secara cepat, aplikasi berhenti jika sudah menemukan sebuah alamat URL yang memiliki kelemahan terhadap injeksi XSS.
Tetapi jika penuh, maka aplikasi akan berhenti jika semua link sudah diperiksa untuk dicari semua alamat URL pada halaman URL dan juga diperiksa untuk kelemahan terhadap injeksi XSS.
8. Halaman INFO
Halaman ini berfungsi untuk mendapatkan informasi mengenai domain yang dipakai oleh website pada tab yang sedang aktif. Informasi didapat dari http://who.is.com merupakan sebuah website yang memiliki informasi tentang informasi-informasi penting yang digunakan untuk menampilkan, Seluruh informasi pada website tersebut
Gambar 4.16 Halaman Informasi Domain Website
Berikut adalah Pseudo Code dari Proses Get Info about Domain Website:
1. Panggil start_elapsed_time() dan store to mulai_proses
2. set currentURL = alamat URL pada tab yang sedang aktif
3. deklarasi url and set url = name of website 4. set url = 'http://who.is/whois/' + url
5. deklarasi info_domain and set to null
6. set info_domain += important information
7. set info_domain += information IP
8. set info_domain += information IP location
9. call stop_elapsed_time()
10.tampilkan jumlah_link_sudah_diperiksa and
11.tampilkan and call get_elapsed_time(mulai_proses,selesai_proses) Berikut adalah Potongan Source Code :
Gambar 4.17 Potongan Code Informasi Domain Website
Alamat URL tersebut dicari alamat root untuk dikirim ke alamat
http://who.is.com dimana nama website diganti dengan nama root alamat URL.
9. Halaman Get Info about Client Connection
Halaman ini berfungsi untuk mendapatkan informasi mengenai koneksi yang dipakai oleh pengguna untuk terhubung dengan internet.
Informasi didapat dari http://www.ip-address.org/ akan pilih untuk
Gambar 4.18 Halaman Informasi Client Connection
Berikut adalah Pseudo Code dari Proses Info client :
1. call start_elapsed_time() dan store to mulai_proses
2. deklarasi url and set url = "http://www.ip-address.org/"
3. panggil get_request_web(url) and store to data
4. deklarasi info_client and set to null
5. deklarasi temp as new array
6. set temp to get information about My IP address
7. set temp to get information about Continent
8. set temp to get information about Country
9. set temp to get information about State 10.set temp to get information about City
11.set temp to get information about City Lat/Lon 12.set temp to get information about ISP
13.set temp to get information about Time zone
14.set temp to get information about IP Language
15.set temp to get information about IP Currency
16.perulangan I dari 0 until 10 a. set info_client = temp[i] 17.call stop_elapsed_time()
18.print jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi
Berikut adalah Potongan Source Code :
Gambar 4.19 Potongan Code Informasi Client Connection
Aplikasi langsung meminta data dari alamat
http://www.ip-address.org/. Setelah data sudah didapat dari website tersebut maka aplikasi akan secara otomatis memproses masukan tersebut sesuai informasi yang dibutuhkan saja.
10.Halaman Get Information about Cookie
Halaman ini berfungsi untuk mendapatkan informasi cookie dari
browser Mozilla firefox. Informasi Cookie yang didapat disaring sesuai
Gambar 4.20 Halaman Get Information about Cookie
Berikut adalah Pseudo Code dari Proses Hasil Get Information
about Cookie :
1. panggill start_elapsed_time() dan store to mulai_proses
2. deklarasi html, url, url2, currentURL, hal_dicari_URL, mulai_URL,
selesai_URL and set to null
3. set currentURL = alamat URL pada tab yang sedang aktif
4. set hal_dicari_URL = '://'
5. set mulai_URL = currentURL.indexOf(hal_dicari_URL) +
hal_dicari_URL.length
6. set selesai_URL = currentURL.indexOf('/',mulai_URL)
7. if currentURL.substring(mulai_URL,mulai_URL + 4) == "www."
Then
a. set url = currentURL.substring(mulai_URL + 3,selesai_URL)
8. else
a. set url = "." + currentURL.substring(mulai_URL,selesai_URL)
b. set url2 = currentURL.substring(mulai_URL,selesai_URL)
9. deklarasi array_cookie as new array
10.call stop_elapsed_time()
11.tampilkan jumlah_link_sudah_diperiksa and
jumlah_link_sudah_dideteksi 12.tampilkan dan panggil call
get_elapsed_time(mulai_proses,selesai_proses) Berikut adalah Potongan Source Code :
Gambar 4.21 Potongan Code Get Information about Cookie
Aplikasi mengambil alamat URL pada tab yang sedang aktif sebagai data inputan. Alamat URL tersebut dicari nama domain nya. Setelah itu aplikasi mengambil semua cookie pada browser Mozilla
firefox. Semua cookie yang didapat dipisah dan diambil yang memiliki
nama domain yang sama dengan nama domain dari alamat URL pada tab yang sedang aktif.
11.Tampilan proses dan hasil scanning
Menu ini berfungsi sebagai result setelah aplikasi mencari kelemahan web atau beberapa fitur tambahan lainnya yang telah dilakukan oleh aplikasi pada waktu terakhir kali pemakaian. Aplikasi akan
menyimpan result tersebut pada new tab browser Mozilla firefox dalam bentuk tampilan text. Di bagian paling atas terdapat tampilan untuk proses scanning dan tampilan dibawahnya merupakan tampilan untuk menampilkan result.