abdullahawan1/dictionary-attack-detector
0
1import requests, time2 3url = 'http://127.0.0.1:5000/api/login'4passwords = ['password','123456','password123','qwerty','letmein','admin123','welcome','monkey','dragon','master']5 6print('=' * 55)7print(' DICTIONARY ATTACK SIMULATION')8print('=' * 55)9print(' Target:', url)10print(' Username: demo_user')11print(' Wordlist:', len(passwords), 'passwords')12print('=' * 55)13 14for i, pwd in enumerate(passwords, 1):15 try:16 r = requests.post(url, json={'username': 'demo_user', 'password': pwd}, timeout=10)17 code = r.status_code18 msg = r.json().get('message', '')19 if code == 403:20 print(' [{}] {:20s} -> BLOCKED! {}'.format(i, pwd, msg))21 for j, p2 in enumerate(['test', 'root'], i + 1):22 r2 = requests.post(url, json={'username': 'demo_user', 'password': p2}, timeout=10)23 print(' [{}] {:20s} -> BLOCKED! {}'.format(j, p2, r2.json().get('message', '')))24 break25 elif code == 200:26 print(' [{}] {:20s} -> SUCCESS!'.format(i, pwd))27 break28 else:29 print(' [{}] {:20s} -> FAILED ({})'.format(i, pwd, code))30 except Exception as e:31 print(' [{}] ERROR: {}'.format(i, e))32 break33 time.sleep(0.3)34 35print('=' * 55)36print(' ATTACK FINISHED')37print('=' * 55)38 39# Check blocked IPs40print()41print('Checking blocked IPs...')42r = requests.get('http://127.0.0.1:5000/api/blocked-ips')43data = r.json()44print(' Blocked IPs:', len(data.get('blocked_ips', [])))45for b in data.get('blocked_ips', []):46 mins = b['expires_in'] // 6047 print(' -> IP: {} | Reason: {} | Expires in: {}m'.format(b['ip_address'], b['reason'], mins))48 