Validasi sisi klien
Dalam bab ini, kita akan mempelajari bagaimana validasi membantu dalam Python Pentesting.
Tujuan utama validasi adalah untuk menguji dan memastikan bahwa pengguna telah memberikan informasi yang diperlukan dan diformat dengan benar yang diperlukan untuk berhasil menyelesaikan operasi.
Ada dua jenis validasi -
- validasi sisi klien (browser web)
- validasi sisi server
Validasi sisi server & Validasi sisi klien
Validasi input pengguna yang berlangsung di sisi server selama sesi posting kembali dipanggil server-side validation. Bahasa seperti PHP dan ASP.Net menggunakan validasi sisi server. Setelah proses validasi di sisi server selesai, umpan balik dikirim kembali ke klien dengan membuat halaman web baru dan dinamis. Dengan bantuan validasi sisi server, kita bisa mendapatkan perlindungan dari pengguna jahat.
Di sisi lain, validasi input pengguna yang terjadi di sisi klien disebut validasi sisi klien. Bahasa skrip seperti JavaScript dan VBScript digunakan untukclient-side validation. Dalam jenis validasi ini, semua validasi input pengguna dilakukan hanya di browser pengguna. Ini tidak begitu aman seperti validasi sisi server karena peretas dapat dengan mudah melewati bahasa skrip sisi klien kami dan mengirimkan masukan berbahaya ke server.
Parameter sisi klien temper: Bypass Validasi
Penerusan parameter dalam protokol HTTP dapat dilakukan dengan bantuan metode POST dan GET. GET digunakan untuk meminta data dari sumber daya tertentu dan POST digunakan untuk mengirim data ke server untuk membuat atau memperbarui sumber daya. Salah satu perbedaan utama antara kedua metode ini adalah jika situs web menggunakan metode GET, maka parameter yang lewat ditampilkan di URL dan kita dapat mengubah parameter ini dan meneruskannya ke server web. Misalnya, string kueri (pasangan nama / nilai) dikirim dalam URL permintaan GET:/test/hello_form.php?name1 = value1&name2 = value2. Di sisi lain, parameter tidak ditampilkan saat menggunakan metode POST. Data yang dikirim ke server dengan POST disimpan di badan permintaan permintaan HTTP. Misalnya, POST/test/hello_form.php HTTP/1.1 Host: ‘URL’ name1 = value1&name2 = value2.
Modul Python untuk Bypass Validasi
Modul Python yang akan kita gunakan adalah mechanize. Ini adalah browser web Python, yang menyediakan fasilitas untuk mendapatkan formulir web di halaman web dan memfasilitasi pengiriman nilai input juga. Dengan bantuan mekanisasi, kita dapat melewati validasi dan mengatur parameter sisi klien. Namun, sebelum mengimpornya ke skrip Python kita, kita perlu menginstalnya dengan menjalankan perintah berikut -
pip install mechanize
Contoh
Berikut ini adalah skrip Python, yang menggunakan mechanize untuk melewati validasi formulir web menggunakan metode POST untuk meneruskan parameter. Formulir web dapat diambil dari tautanhttps://www.tutorialspoint.com/php/php_validation_example.htm dan dapat digunakan di situs web tiruan apa pun pilihan Anda.
Untuk memulainya, mari kita impor peramban mekanik -
import mechanize
Sekarang, kita akan membuat sebuah objek bernama brwsr dari peramban mekanik -
brwsr = mechanize.Browser()
Baris kode berikutnya menunjukkan bahwa agen pengguna bukanlah robot.
brwsr.set_handle_robots( False )
Sekarang, kita perlu menyediakan url dari situs dummy kita yang berisi formulir web yang kita perlukan untuk melewati validasi.
url = input("Enter URL ")
Sekarang, baris berikut akan menyetel beberapa induk menjadi true.
brwsr.set_handle_equiv(True)
brwsr.set_handle_gzip(True)
brwsr.set_handle_redirect(True)
brwsr.set_handle_referer(True)
Selanjutnya akan membuka halaman web dan mencetak formulir web di halaman tersebut.
brwsr.open(url)
for form in brwsr.forms():
print form
Baris kode berikutnya akan melewati validasi pada bidang yang diberikan.
brwsr.select_form(nr = 0)
brwsr.form['name'] = ''
brwsr.form['gender'] = ''
brwsr.submit()
Bagian terakhir dari skrip dapat diubah sesuai dengan bidang formulir web tempat kami ingin melewati validasi. Di sini, di skrip di atas, kami telah mengambil dua bidang -‘name’ dan ‘gender’ yang tidak boleh dikosongkan (Anda bisa lihat di pengkodean formulir web) tetapi skrip ini akan melewati validasi itu.