Dari desain sistem yang telah dibuat sebelumnya, maka dapat di implementasikan seperti beberapa contoh tampilan berikut :
4.1.1 Tampilan utama
Ini (Gambar 4.1) merupakan tampilan awal pada saat aplikasi di panggil :
Gambar 4.1 Tampilan Menu Utama
Pada tampilan utama terdiri atas 4 bagian yang dibatasi oleh 3
garis. Bagian pertama adalah nama aplikasi yaitu VULNERABILITY
Bagian ketiga adalah hasil proses aplikasi sesuai pilihan menu yang dipilih oleh pengguna. Bagian keempat adalah menu untuk menyimpan hasil proses. Tampilan menu utama dibuat dengan warna dasar adalah putih karena terlihat sederhana, jelas, dan nyaman dilihat oleh pengguna.
4.1.2 Halaman ScanningSQL Injection pada Url
Halaman ini berfungsi untuk melakukan pencarian kelemahan alamat Url pada tab yang sedang aktifterhadap SQL Injection dengan
mengakses alamat Url yang sudah dimodofikasi dengan
menambahkan simbol (‘) setelah simbol (=) pada alamat Url yang didapatdari alamat Url pada tab yang sedang aktif.
Gambar 4.2 Halaman Scanning SQL Injection pada URL
Berikut adalah Pseudo Code dari Proses Scanning SQL
1. call show_loading()
2. call start_elapsed_time() dan store to mulai_proses 3. declare jumlah_link_sudah_diperiksa and set 0 4. declare jumlah_link_sudah_dideteksi and set 0 5. declare variabel html and set null
6. set currentURL = alamat URL pada tab yang aktif
7. call check_sql_inject(currentURL) and store to hasil_scan_SQLi 8. set jumlah_link_sudah_diperiksa + 1
9. if hasil_scan_SQLi is “KOSONG” then a.settemp_html = “URL aman” 10.else
a.set temp_html = hasil_scan_SQLi b.set jumlah_link_sudah_dideteksi + 1 11.call stop_elapsed_time()
12.print jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi 13.print and call get_elapsed_time(mulai_proses,selesai_proses) 14.call hide_loading()
15.print temp_html
Potongan Source Code :
function get_sqli(callback)
{chrome.tabs.getSelected(null, function(tab)
{var temp_html = "<table>"; var currentURL = tab.url; report("mengakses :" + currentURL); var hasil_scan_SQLi = check_sql_inject(currentURL); jumlah_link_sudah_diperiksa++; report("hasil : " +
hasil_scan_SQLi.substring(hasil_scan_SQLi.indexOf("readonly= \"yes\";>") + 16, hasil_scan_SQLi.indexOf("</div>"))); if(hasil_scan_SQLi == "KOSONG") temp_html += '<tr><td align="center" id="hasil_scan"> URL AMAN
</td></tr>';
else{temp_html += hasil_scan_SQLi; jumlah_link_sudah_dideteksi++;}
Aplikasi sebelum proses akan memunculkan gambar “please
wait …”. Aplikasi mengambil alamat Url pada tab yang sedang aktif
sebagai data masukan. Alamat Url tersebut dicari kelemahannya
terhadap SQL Injection oleh fungsi check_sql_inject(). Jika hasil dari fungsi adalah “kosong” berarti alamat Url tersebut aman jika ada
hasil maka aplikasi akan memunculkan alamat Url yang sudah
dimodifikasi yang terbukti mempunyai kelemahan terhadap SQL
Injection. Setelah proses selesai aplikasi akan memunculkan hasil pencarian.
4.1.3 Halaman ScanningSQL Injection pada PAGE
Halaman ini berfungsi untuk melakukan pencarian kelemahan alamat Url pada tab yang sedang aktif terhadap SQL Injection dengan
cara mengakses semua alamat Url yang didapat pada halaman dengan
alamat pada tab yang sedang aktif dan selanjutnya dimodofikasi dengan menambahkan simbol (‘) setelah simbol (=) pada semua
alamat Url yang ditemukan dan bisa dimodofikasi. Menu Sub menu
ini seperti Gambar 4.4
Gambar 4.3 Halaman Scanning SQL Injection pada PAGE
Berikut adalah Pseudo Code dari Proses Scanning SQL
1. call show_loading()
2. call start_elapsed_time() dan store to mulai_proses 3. declare jumlah_link_sudah_diperiksa and set 0 4. declare jumlah_link_sudah_dideteksi and set 0 5. declare variabel html and set null
6. declare array_URL as new array
7. set currentURL = alamat URL pada tab yang aktif 8. call get_all_urls(currentURL) and store to array_URL 9. loop i from 0 until length of array_URL
a. 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 + 1 b. else
1)call check_sql_inject(array_URL[i]) and store to hasil_scan_SQLi 2)set jumlah_link_sudah_diperiksa + 1
10.if hasil_scan_SQLi is “KOSONG” then a. settemp_html = “URL aman” 11.else
a. set temp_html = hasil_scan_SQLi b. set jumlah_link_sudah_dideteksi + 1 12.call stop_elapsed_time()
13.print jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi 14.print and call get_elapsed_time(mulai_proses,selesai_proses) 15.call hide_loading()
16.print temp_html
Potongan Source Code :
function get_links(callback)
{chrome.tabs.getSelected(null, function(tab)
{var array_URL = new Array();report("mengambil semua link pada halaman " + tab.url); array_URL =
get_all_urls(tab.url); var hasil_scan_SQLi = ""; var temp_html = "<table>"; for(var i = 0; i < array_URL.length; i++){
{report("mengakses :" + array_URL[i].substring(0,array_URL[i].indexOf("#####POST#### #")) + " METODE POST "); hasil_scan_SQLi = check_sql_inject_post(array_URL[i]); jumlah_link_sudah_diperiksa++;} else{report("mengakses :" + array_URL[i]); hasil_scan_SQLi = check_sql_inject(array_URL[i]); jumlah_link_sudah_diperiksa++;} report("hasil : " + hasil_scan_SQLi.substring(hasil_scan_SQLi.indexOf("readonly= \"yes\";>") + 16,hasil_scan_SQLi.indexOf("</div>"))); if(hasil_scan_SQLi != "KOSONG"){temp_html += hasil_scan_SQLi; jumlah_link_sudah_dideteksi++}
Aplikasi mengambil alamat Url pada tab yang sedang aktif sebagai data masukan. Alamat Url tersebut akan dicari semua alamat
Url yang terdapat pada halaman Url tersebut dengan fungsi
get_all_urls(). Semua alamat Url yang didapat akan diperiksa
apakah memiliki kelemahan terhadap SQL Injection oleh fungsi
check_sql_inject() (alamat Url mengirim nilai dengan metode
GET) dan check_sql_inject_post() (alamat Url mengirim nilai
dengan metode POST). Jika hasil pencarian dari semua alamat Url
yang ditemukan kosong maka aplikasi menyatakan halalam Url
tersebut aman jika tidak maka aplikasi akan menunjukkan beberapa
alamat Url yang memiliki kelemahan terhadap SQL Injection. Setelah
proses pencarian selesai maka aplikasi menunjukkan hasil proses pencarian.
4.1.4 Halaman ScanningSQL Injection pada SITE
Halaman ini berfungsi untuk melakukan pencarian kelemahan
website pada tab yang sedang aktif terhadap SQL Injection dengan
cara mengakses semua alamat Url yang didapat pada website tersebut
dan selanjutnya dimodofikasi dengan menambahkan simbol (‘) setelah
simbol (=) pada semua alamat Url yang ditemukan dan bisa
dimodofikasi. 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 SQL Injection.
Gambar 4.4 Halaman Scanning SQL Injection pada SITE dengan cepat
Pada submenu terakhir sama dengan submenu sebelumnya
tetapi proses pencarian tidak berhenti saat ditemukan satu alamat Url
yang memiliki kelemahan terhadap SQL Injection 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.5 Halaman Scanning SQL Injection pada SITE secara penuh
Berikut adalah Pseudo Code dari Proses Scanning SQL
Injection pada SITE : 1. call show_loading()
2. call start_elapsed_time() dan store to mulai_proses 3. declare jumlah_link_sudah_diperiksa and set 0 4. declare jumlah_link_sudah_dideteksi and set 0 5. set rootURL = alamat URL pada tab yang aktif
6. set path_rootURL = rootURL.substring(0,rootURL.lastIndexOf('/') + 1) 7. set rootURL = "http://" + rootURL
8. declare akan_diakses, sudah_diakses, sudah_dicari hasil_sementara as new array
9. declare temp_url, hasil_scan_SQLi and set to null 10.loop nonstop
a. if akan_diakses don’t have value then 1) break
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
e. if ada_yang_sama = false and temp_url have word "#####POST#####" then
1) call get_all_urls(temp_url) and store to hasil_sementara 2) push temp_url to sudah_diakses
f. loop i from 0 until length of hasil_sementara 1) set ada_yang_sama = false
2) loop j from 0 until length of sudah_diakses a) if hasil_sementara[i] = sudah_diakses[j then
I. ada_yang_sama = true 3) 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 I. if hasil_sementara[i] = sudah_dicari[k] then
i.ada_yang_sama2 = true
d) if hasil_sementara[i] have word “#####POST#####" then I. if ada_yang_sama2 = false then
i.call check_sql_inject_post(hasil_sementara[i]) and store to hasil_scan_SQLi
ii.set jumlah_link_sudah_diperiksa + 1 iii.push hasil_sementara[i] to sudah_dicari e) else
I. if ada_yang_sama2 = false then
i.call check_sql_inject(hasil_sementara[i]) and store to hasil_scan_SQLi
ii.set jumlah_link_sudah_diperiksa + 1 iii.push hasil_sementara[i] to sudah_dicari g. if hasil_scan_SQLi not “KOSONG” then
1) set temp_html += hasil_scan_SQLi 2) set jumlah_link_sudah_dideteksi + 1 3) if batas = 1then
a) set berhenti = true b) break
11.call stop_elapsed_time()
12.print jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi 13.print and call get_elapsed_time(mulai_proses,selesai_proses) 14.call hide_loading()
Potongan Source Code :
for(var loop = 0; loop < sudah_diakses.length; loop++) {if(temp_url == sudah_diakses[loop])ada_yang_sama = true;} if(ada_yang_sama == false &&
temp_url.indexOf("#####POST#####") == -1){
report("mengambil semua link pada halaman " + temp_url); hasil_sementara = get_all_urls(temp_url);
sudah_diakses.push(temp_url); for(var loop = 0; loop < hasil_sementara.length; loop++){
ada_yang_sama = false; for(var loop2 = 0; loop2 <
sudah_diakses.length; loop2++){if(hasil_sementara[loop] == sudah_diakses[loop2])ada_yang_sama = true;}
if(ada_yang_sama == false){
akan_diakses.push(hasil_sementara[loop]); ada_yang_sama2 = false; for(var loop3 = 0; loop3 < sudah_dicari.length; loop3++){if(hasil_sementara[loop] == sudah_dicari[loop3]) ada_yang_sama2 = true;}
Aplikasi mengambil alamat Url pada tab yang sedang aktif sebagai data masukan. 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 alamat Url pada
halaman Url jika belum dicari dan mencari kelemahan terhadap SQL
Injection. 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 SQL Injection
oleh fungsi check_sql_inject() (alamat Url mengirim nilai dengan
metode GET) dan check_sql_inject_post (alamat Url mengirim nilai
dengan metode POST). 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 SQL
Injection. Setelah proses pencarian selesai maka aplikasi menunjukkan hasil proses pencarian.
4.1.5 Halaman ScanningXSS Injection pada URL
Halaman ini berfungsi untuk melakukan pencarian kelemahan alamat URL pada tab yang sedang aktifterhadap XSS Injection dengan
mengakses alamat Url yang sudah dimodofikasi dengan
menambahkan script (<script>document.write('<strong><em>
<s>XSS_BY_ADITYA</s></em></strong>');</script>) setelah simbol (=) pada alamat Url yang didapat dari alamat Url pada tab yang sedang aktif (Utuh: 2011). Tampilan sub menu ini pada gambar 4.9.
Gambar 4.6 Halaman Scanning XSS Injection pada URL
Berikut adalah Pseudo Code dari Proses Scanning XSS
Injection pada URL : 1. call show_loading()
2. call start_elapsed_time() dan store to mulai_proses 3. declare jumlah_link_sudah_diperiksa and set 0 4. declare jumlah_link_sudah_dideteksi and set 0 5. declare variabel html and set null
6. set currentURL = alamat URL pada tab yang aktif
7. call check_xss_inject(currentURL) and store to hasil_scan_XSS 8. set jumlah_link_sudah_diperiksa + 1
9. if hasil_scan_ XSS is “KOSONG” then a.settemp_html = “URL aman” 10.else
a.set temp_html = hasil_scan_ XSS b.set jumlah_link_sudah_dideteksi + 1 11.call stop_elapsed_time()
12.print jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi 13.print and call get_elapsed_time(mulai_proses,selesai_proses) 14.call hide_loading()
15.print temp_html
Potongan Source Code :
function get_xss(callback)
var temp_html = "<table>"; var currentURL = tab.url; report("mengakses :" + currentURL); var hasil_scan_XSS = check_xss_inject(currentURL); jumlah_link_sudah_diperiksa++; report("hasil : " +
hasil_scan_XSS.substring(hasil_scan_XSS.indexOf("readonly=\" yes\";>") + 16,hasil_scan_XSS.indexOf("</div>")));
if(hasil_scan_XSS == "KOSONG") temp_html += '<tr><td align="center" id="hasil_scan"> URL AMAN
Aplikasi mengambil alamat Url pada tab yang sedang aktif
sebagai data masukan. Alamat Url tersebut dicari kelemahannya
terhadap XSS Injection oleh fungsi check_xss_inject(). Jika hasil dari fungsi adalah “kosong” berarti alamat Url tersebut aman jika ada
hasil maka aplikasi akan memunculkan alamat Url yang sudah
dimodifikasi yang terbukti mempunyai kelemahan terhadap XSS
Injection. Setelah proses selesai aplikasi akan memunculkan hasil pencarian.
4.1.6 Halaman ScanningXSS Injection pada PAGE
Halaman ini berfungsi untuk melakukan pencarian kelemahan halaman Url pada tab yang sedang aktif terhadap XSS Injection
dengan cara mengakses semua alamat Url yang didapat pada halaman
tersebut dan selanjutnya dimodofikasi dengan menambahkan script
(<script>document.write ('<strong><em><s> XSS_BY_ADITYA
alamat URL yang ditemukan dan bisa dimodofikasi. Gambar 4.11 merupakan tampilan untuk sub menu ini.
Ga mbar 4.7 Halaman Scanning XSS Injection pada PAGE
Berikut adalah Pseudo Code dari Proses Scanning XSS
Injection pada PAGE : 1. call show_loading()
2. call start_elapsed_time() dan store to mulai_proses 3. declare jumlah_link_sudah_diperiksa and set 0 4. declare jumlah_link_sudah_dideteksi and set 0 5. declare variabel html and set null
6. declare array_URL as new array
7. set currentURL = alamat URL pada tab yang aktif 8. call get_all_urls(currentURL) and store to array_URL 9. loop i from 0 until length of array_URL
a.if array_URL[i] have word “#####POST#####” then
1) call check_xss_inject_post(array_URL[i]) and store to hasil_scan_XSS 2) set jumlah_link_sudah_diperiksa + 1
b.else
1) call check_xss_inject(array_URL[i]) and store to hasil_scan_XSS 2) set jumlah_link_sudah_diperiksa + 1
10.if hasil_scan_XSS is “KOSONG” then a.settemp_html = “URL aman” 11.else
a.set temp_html = hasil_scan_XSS b.set jumlah_link_sudah_dideteksi + 1 12.call stop_elapsed_time()
13.print jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi 14.print and call get_elapsed_time(mulai_proses,selesai_proses) 15.call hide_loading()
16.print temp_html
Potongan Source Code :
for(var i = 0; i < array_URL.length; i++){ if(array_URL[i].indexOf("#####POST#####") > 0) {report("mengakses :" +
array_URL[i].substring(0,array_URL[i].indexOf("#####POST#### #")) + " METODE POST ");hasil_scan_XSS =
check_xss_inject_post(array_URL[i]); jumlah_link_sudah_diperiksa++;}
else{ report("mengakses :" + array_URL[i]); hasil_scan_XSS = check_xss_inject(array_URL[i]); jumlah_link_sudah_diperiksa++;}
Aplikasi mengambil alamat Url pada tab yang sedang aktif sebagai data masukan. Alamat Url tersebut akan dicari semua alamat
Url yang terdapat pada halaman Url tersebut dengan fungsi
get_all_urls(). Semua alamat Url yang didapat akan diperiksa
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
tersebut aman jika tidak maka aplikasi akan menunjukkan beberapa alamat Url yang memiliki kelemahan terhadap XSS Injection. Setelah proses pencarian selesai maka aplikasi menunjukkan hasil proses pencarian.
4.1.7 Halaman ScanningXSS Injection pada SITE
Halaman ini berfungsi untuk melakukan pencarian kelemahan
website pada tab yang sedang aktif terhadap XSS Injection dengan cara
mengakses semua alamat Url yang didapat pada website tersebut dan
selanjutnya dimodofikasi dengan menambahkan script
(<script>document.write ('<strong><em><s> XSS_BY_ADITYA
</s></em></strong>');</script>) setelah simbol (=) pada semua
alamat Url yang ditemukan dan bisa dimodofikasi. 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 XSS Injection.
Pada submenu terakhir sama dengan submenu sebelumnya
tetapi proses pencarian tidak berhenti saat ditemukan satu alamat Url
yang memiliki kelemahan terhadap XSS Injection 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.9 Halaman Scanning XSS Injection pada SITE secara penuh
Berikut adalah Pseudo Code dari Proses Scanning XSS
Injection pada SITE : 1. call show_loading()
2. call start_elapsed_time() dan store to mulai_proses 3. declare jumlah_link_sudah_diperiksa and set 0 4. declare jumlah_link_sudah_dideteksi and set 0 5. set rootURL = alamat URL pada tab yang aktif
6. set path_rootURL = rootURL.substring(0,rootURL.lastIndexOf('/') + 1) 7. set rootURL = "http://" + rootURL
8. declare akan_diakses, sudah_diakses, sudah_dicari hasil_sementara as new array
9. declare temp_url, hasil_scan_XSS and set to null 10.loop nonstop
a.if akan_diakses don’t have value then 1)break
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#####" then 1)call get_all_urls(temp_url) and store to hasil_sementara
2)push temp_url to sudah_diakses
f. loop i from 0 until length of hasil_sementara 1)set ada_yang_sama = false
2)loop j from 0 until length of sudah_diakses a)if hasil_sementara[i] = sudah_diakses[j then
I. ada_yang_sama = true 3)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 I. if hasil_sementara[i] = sudah_dicari[k] then
i. ada_yang_sama2 = true
d) if hasil_sementara[i] have word “#####POST#####" then I. if ada_yang_sama2 = false then
i. call check_xss_inject_post(hasil_sementara[i]) and store to hasil_scan_XSS
ii. set jumlah_link_sudah_diperiksa + 1 iii. push hasil_sementara[i] to sudah_dicari e)else
I. if ada_yang_sama2 = false then
i. call check_xss_inject(hasil_sementara[i]) and store to hasil_scan_XSS
ii. set jumlah_link_sudah_diperiksa + 1 iii. 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
11.call stop_elapsed_time()
12.print jumlah_link_sudah_diperiksa and jumlah_link_sudah_dideteksi 13.print and call get_elapsed_time(mulai_proses,selesai_proses) 14.call hide_loading()
15.print temp_html
Potongan Source Code :
while(berhenti == false){if(akan_diakses.length ==
0){break;} temp_url = akan_diakses.shift() ada_yang_sama = false; for(var loop = 0; loop < sudah_diakses.length; loop++){if(temp_url == sudah_diakses[loop])ada_yang_sama = true;} if(ada_yang_sama == false &&
temp_url.indexOf("#####POST#####") == -1){report("mengambil semua link pada halaman " + temp_url); hasil_sementara = get_all_urls(temp_url); sudah_diakses.push(temp_url); for(var loop = 0; loop < hasil_sementara.length; loop++) {ada_yang_sama = false;for(var loop2 = 0; loop2 <
sudah_diakses.length; loop2++){if(hasil_sementara[loop] == sudah_diakses[loop2])ada_yang_sama = true;}
Aplikasi mengambil alamat Url pada tab yang sedang aktif sebagai data masukan. Aplikasi mencari root dari alamat Url tersebut.
Alamat root dimasukkan krl tersebut dengan fungsi get_all_urls().
Setelah itu aplikasi akan memeriksa setiap alamat Url untuk
dimasukkan ke antrian untuk dicari semua alamat Url pada halaman
Url jika belum dicari dan mencari kelemahan terhadap XSS Injection
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
menemukan sebuah alamat Url yang memiliki kelemahan terhadap
XSS Injection. 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 XSS