Skip to content

imhunterand/dirboosters

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Information

Dirboosters adalah sebuah tool populer untuk menemukan direktori dan file tersembunyi pada server web. Dirboosters ditulis dalam bahasa Python dan menggunakan beberapa thread untuk mempercepat proses scanning. Berikut adalah cara membuat code sederhana dari Dirboosters dalam bahasa Python:

Pertama, kita perlu mengimpor library yang diperlukan:

import argparse
import requests
from concurrent.futures import ThreadPoolExecutor, as_completed

Kita akan menggunakan argparse untuk mengurai argumen baris perintah, requests untuk mengirim permintaan HTTP, dan ThreadPoolExecutor untuk menjalankan beberapa thread secara bersamaan. Selanjutnya, kita perlu mendefinisikan argumen baris perintah. Kita akan menggunakan argparse untuk mendefinisikan dua argumen: URL target dan file wordlist. Berikut cara mendefinisikan argumen:

parser = argparse.ArgumentParser()
parser.add_argument('url', help='Target URL')
parser.add_argument('-w', '--wordlist', help='Wordlist file', default='wordlist.txt')
args = parser.parse_args()

Argumen url diperlukan dan harus berisi URL target. Argumen wordlist adalah opsional dan menentukan file wordlist yang digunakan. Jika tidak disediakan, argumen ini default ke wordlist.txt. Sekarang, kita perlu membaca file wordlist dan membuat daftar direktori untuk diuji. Kita bisa menggunakan fungsi bawaan open() untuk membaca file dan metode splitlines() untuk membagi file menjadi daftar baris. Berikut cara membaca file wordlist:

with open(args.wordlist) as f:
    directories = [line.strip() for line in f.readlines()]

Metode strip() digunakan untuk menghapus karakter baris baru dari akhir setiap baris. Sekarang, kita dapat mendefinisikan fungsi yang akan menguji setiap direktori. Kita akan memanggil fungsi ini test_directory(). Fungsi ini akan mengirimkan permintaan HTTP GET ke URL target dengan direktori ditambahkan ke akhir URL. Jika kode status respons adalah 200, ini berarti direktori ada dan kita akan mencetak URL. Berikut kode untuk fungsi test_directory():

def test_directory(url, directory):
    full_url = url + '/' + directory
    response = requests.get(full_url)
    if response.status_code == 200:
        print(full_url)

Akhirnya, kita dapat membuat pool thread dan menjalankan fungsi test_directory() untuk setiap direktori dalam daftar. Kita akan menggunakan ThreadPoolExecutor untuk menjalankan fungsi untuk setiap direktori secara paralel. Berikut kode untuk membuat pool thread:

with ThreadPoolExecutor(max_workers=20) as executor:
    futures = [executor.submit(test_directory, args.url, directory) for directory in directories]

    for future in as_completed(futures):
        pass

Argumen max_workers menentukan jumlah maksimum thread yang digunakan. Kita akan menggunakan 20 thread dalam contoh ini. Metode executor.submit() digunakan untuk menyerahkan tugas baru ke pool thread untuk setiap direktori. Fungsi as_completed() digunakan untuk menunggu semua tugas selesai.

Releases

No releases published

Packages

No packages published