0
Home  ›  Python

Cara Membuat Tool Scanner Clickjacking dengan Python

 


Clickjacking merupakan metode yang digunkan oleh ettacker untuk mengelabui user, hal ini biasanya dilakukan dengan menyematkan situs web yang sah di dalam iframe yang tidak terlihat dan melapisinya di atas halaman yang berbahaya. Saat pengguna berinteraksi dengan halaman tersebut, mereka tanpa sadar melakukan tindakan pada situs yang disematkan, seperti menyukai kiriman, mengirimkan formulir, atau bahkan melakukan transaksi.

Clickjacking juga dapat di gunakan untuk

  • Pencurian Data : Penyerang dapat memanfaatkan clickjacking untuk mencuri informasi sensitif dengan menipu pengguna agar mengirimkan formulir atau memasukkan kredensial.
  • Distribusi Malware : Clickjacking dapat digunakan untuk mengunduh dan mengeksekusi malware di komputer korban.

Tips Melindungi diri dari clickjacking 

Untuk dapat melindungi diri dari clickjacking seorang developer dapat menggunakan header HTTP tertentu yang mengontrol cara situs web disematkan dalam bingkai. Header utamanya adalah:

1. X-Frame-Options : Header ini memiliki tiga nilai:
  • DENY: Mencegah halaman ditampilkan dalam iframe.
  • SAMEORIGIN: Mengizinkan halaman dibingkai hanya oleh halaman-halaman pada asal yang sama.
  • ALLOW-FROM uri: Memungkinkan halaman dibingkai hanya berdasarkan asal yang ditentukan. Namun, metode ini sudah tidak digunakan lagi dan tidak didukung secara luas.
2. Content-Security-Policy (CSP) : Secara khusus, frame-ancestorsarahan ini dapat digunakan untuk mengendalikan domain mana saja yang diizinkan untuk membingkai konten.

Memeriksa Kerentanan Clickjacking dengan Python

Untuk memulainya kita akan menggunakan pusta request, kamu bisa menginstalnya.
$ pip install requests

lalu buat file python baru terserah kamu mau buat nama apa, dan copy code di bawah ini.
import requests, argparse #argparse for parsing command-line arguments

# Function to check if a website is vulnerable to clickjacking
def check_clickjacking(url):
    try:
        # Add https:// schema if not present in the URL
        if not url.startswith('http://') and not url.startswith('https://'):
            url = 'https://' + url
        # Send a GET request to the URL
        response = requests.get(url)
        headers = response.headers
        # Check for X-Frame-Options header
        if 'X-Frame-Options' not in headers:
            return True
        # Get the value of X-Frame-Options and check it
        x_frame_options = headers['X-Frame-Options'].lower()
        if x_frame_options != 'deny' and x_frame_options != 'sameorigin':
            return True
        return False
    except requests.exceptions.RequestException as e:
        print(f"An error occurred while checking {url} - {e}")
        return False
Fungsi ini check_clickjacking memeriksa apakah suatu situs web rentan terhadap clickjacking dengan mengirimkan permintaan GET ke URL, memverifikasi keberadaan header X-Frame-Options, dan memastikan nilainya adalah deny atau sameorigin, yang menunjukkan perlindungan terhadap clickjacking.

Kemudian kita akan membuat main fungsi untuk menerima argumen pengguna (url) melalui baris perintah dan memeriksa kerentanan clickjacking.
# Main function to parse arguments and check the URL
def main():
    parser = argparse.ArgumentParser(description='Clickjacking Vulnerability Scanner')
    parser.add_argument('url', type=str, help='The URL of the website to check')
    parser.add_argument('-l', '--log', action='store_true', help='Print out the response headers for analysis')
    args = parser.parse_args()
    url = args.url
    is_vulnerable = check_clickjacking(url)
    if is_vulnerable:
        print(f"[+] {url} may be vulnerable to clickjacking.")
    else:
        print(f"[-] {url} is not vulnerable to clickjacking.")
    if args.log:
        # Add https:// schema if not present in the URL for response printing
        if not url.startswith('http://') and not url.startswith('https://'):
            url = 'https://' + url
        print("\nResponse Headers:")
        response = requests.get(url)
        for header, value in response.headers.items():
            print(f"{header}: {value}")

if __name__ == '__main__':
    main()
Fungsi ini main mengurai argumen baris perintah untuk memeriksa URL yang diberikan untuk kerentanan clickjacking, mencetak hasilnya, dan secara opsional mencatat header respons HTTP jika ditentukan (menggunakan --logatau -l flags).

Untuk menjalankannya kamu bisa menggunakan contoh perintah di bawah ini.
$ python clickjacking_scanner.py phpwebvuln.com/ – -log
Atau kamu bisa menguji pada website yang tidak rentan.
$ python clickjacking_scanner.py phpwebvuln.com —l
./X3NUX
Mereka teralu banyak mengusik, maka bunuh dan dan matilah sekarang juga!!!!
Post a Comment
Search
Menu
Theme
Share
Additional JS