Jumat, 18 Januari 2019

Auto Angket js | Console Penetrate

Hilih mau ujian, cetak kartu aja masukin angket...
Antum males...? Sama saya juga.


JAVASCRIPT AUTO ANGKET | SiamikUPNVJ

Preliminary

Tips ini ditulis semata-mata hanya untuk Iseng, dan ujicoba penetrasi web melalui konsol.
Merupakan suatu script yang kami tulis menggunakan bahasa pemrograman javascript, yang kemudian kami inject menggunakan konsol bawan browser.

Ide Awal

Script ini ditulis akibat dari:
  • Kegabutan dan kemalasan;
  • Hari ujian yang semakin dekat, dan tuntutan kartu Ujian;
  • Persyaratan pengisian angket pra cetak kartu ujian pada Website Univ;
  • Website Univ yang menggunakan server *.asp (kami masih bingung mencari celah *.asp);
  • Angket yang Overbuilt, terlalu banyak;
Bahkan dari point terakhir sempat muncul issue bahwa 
"asp server dari angket ini tidak menerima respon yang negatif. sehingga pertanyaan pada angket dengan respon negatif akan diulang kembali".
Berangkat dari itu semua kami ingin buktikan kebenaran issue diatas dan sekalian built script yang bisa mempercepat proses pengisian angket.

Subject

Subjek dari penetrasi ini adalah website sistem informasi akademik UPNVJ. Tepatnya pada page "PENDAFTARAN UAS".

Versi 0.0.00

setelah mengetahui apa ide awal dan subject dari pembuatan script ini, perlu diketahui bahwa script yang ditulis pada tutor/tips ini bukanlah versi awal.berikut adalah versi terbaru yang sudah kami kembangkan dan perbaiki, sedangkan script awalnya hanya memiliki kemampuan untuk mengisi salah satu opsi pertanyaan saja. pada script versi awal hasil yang diberikan sangatlah statis.
V 0.0.01
DOM salah satu opsi.
sangat statis. hasil respon hanya satu opsi saja.
V 0.0.02
DOM dua opsi dengan random number.
respons yang diberikan memilik harga yang acak.
Lates Version
versi terbaru script ini adalah V 0.0.02, dengan kemampuan dapat dilihat diatas.

 Metode

DOM
Proses seleksi pada dokumen ini akan melibatkan querrySelectorAll yang memungkinkan script dapat meng akses salah satu elemen dokumen dengan spesifikasi tertentu. Rule yang diberikan adalah seleksi pada objek Input dengan value tertentu. Sehingga kurang lebih akan terlihat sebagai berikut:

document.querySelectorAll('input[value="tertentu"]')

Nah dalam dokumen ini pada tiap tiap pertanyaannya memiliki empat opsi. kemudian pada sesi ini akan dipilih dua yaitu: Tidak Setuju, dan Setuju. sehingga akan terlihat:

document.querySelectorAll('input[value="Tidak Setuju"]')

Rand Reaction
Random adalah unsur utama pada versi terbaru ini. secara garis besar prosesnya adalah memilih dua kemungkinan dengan menggunakan angka random yang dibulatkan keatas. secara umum logika yang digunakan kurang lebih sebagai berikut:

if(Math.floor(Math.random()*2)==0){console.log("tidak setuju")}else{console.log("Setuju")}

Jika scrip diatas dijalankan maka akan memberikan hasil random antara "tidak setuju", dan "setuju".

Checked Checkbox
Karena tipe input yang diberikan adalah checkbox, maka kita perlu lakukan adalah mencoret salah satu opsi yang tersedia. jika dituliskan menggunakan javascript kurang labih adalah sebagai berikut:

var inpt = ...; //objek input kita
inpt.checked=true;

dengan merepresentasikan inpt sebagai objek elemen checkbox yang akan kita isi maka inpt akan terpilih(checked).

Looping
pada kasus ini pengulangan atau looping dilakukan sebanyak objek pertanyaan yang tersedia.

sehingga jika diaplikasikan dari semua metode diatas akan didapatkan script berikut:

/*---------------------------------------------------------------------------------------
Auto angket Siamik UPNVJ
   Javascript console
   Author : GB_Sources
----------------------------------------------------------------------------------------*/

d=document;
sel=[];
sel.push(d.querySelectorAll('input[value="Sangat Setuju"]'));
sel.push(d.querySelectorAll('input[value="Setuju"]'));
ll=sel[0].length
for(var x=0;x<ll;x++){
 var a = Math.floor(Math.random()*2);
 sel[a][x].checked=true;
}
var sc = document.getElementById('securityCode');
sc.scrollIntoView();
sc.focus();

script diatas kemudian di copy-paste kedalam konsol browser dan dijalankan. sedangkan script:
var sc = document.getElementById('securityCode');
sc.scrollIntoView();
sc.focus();

Sengaja ditambahkan untuk mempercepat transisi page pada angket.

Kesimpulan

  • Script diatas dibuat guna pembuktian issue sekaligus tools guna mempercepat pengisian angket pada website siamik UPNVJ;
  • Dengan menggunakan script diatas, antum dapat dengan cepat mengisi angket;
  • Hasil respons yang diberikan adalah random antara "Tidak Setuju", dan "Setuju" dengan presentase respons yang random juga;
Video demonstrasi akan unggah pada postingan berikutnya.
Salam.