Zum Hauptinhalt springen
Echtzeit-Radar & Feeds
Alle RSS Feeds ➔
👥 Community & Social
Windows Tipps & SecurityGrafikkarte vor Überhitzung schützen: So geht’s(25.09.2026 um 08:00 Uhr)
••••••••••
Windows Tipps & SecurityGrafikkarte vor Überhitzung schützen: So geht’s(25.09.2026 um 08:00 Uhr)
••••••••••
Intelligence View
⚡ tsecurity.de Intelligence

Have I Been Pwned Has a Free API — Check If Any Email Was in a Data Breach

Have I Been Pwned (HIBP) is the internet's largest database of breached credentials. Over 14 billion compromised accounts indexed. And part of their API is completely free. The Wake-Up Call A SaaS company discovered their users…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Have I Been Pwned (HIBP) is the internet's largest database of breached credentials. Over 14 billion compromised accounts indexed. And part of their API is completely free.






The Wake-Up Call



A SaaS company discovered their users were reusing breached passwords. Not because they were hacked — because they checked. They integrated HIBP's password API into their registration flow. 23% of new passwords had already been exposed in data breaches.



They added a simple warning: "This password appeared in a known data breach." Password reuse dropped by 80%.






What's Free vs Paid




























Feature Cost What You Get
Password check Free Check if a password hash exists in breaches
Breach list Free Get all known breaches and their details
Email check $3.50/mo Check if specific emails were breached


The password API is the most useful — and it's 100% free.






Check If a Password Has Been Breached



HIBP uses a clever k-anonymity model. You send only the first 5 characters of the SHA-1 hash. Your actual password never leaves your machine.



\`python

import hashlib

import requests



def check_password(password):

"""Check if a password appears in known data breaches."""




# Hash the password
sha1 = hashlib.sha1(password.encode("utf-8")).hexdigest().upper()
prefix = sha1[:5]
suffix = sha1[5:]

# Send only the prefix (k-anonymity)
response = requests.get(
f"https://api.pwnedpasswords.com/range/{prefix}"
)

# Check if our suffix appears in the results
for line in response.text.splitlines():
hash_suffix, count = line.split(":")
if hash_suffix == suffix:
return int(count)

return 0






Test common passwords



passwords = ["password123", "hunter2", "correcthorsebatterystaple"]



for pwd in passwords:

count = check_password(pwd)

if count > 0:

print(f"⚠ '{pwd}' found in {count:,} breaches!")

else:

print(f"✓ '{pwd}' not found in any known breach")

`\



Output:

\

⚠ 'password123' found in 246,099 breaches!

⚠ 'hunter2' found in 17,043 breaches!

✓ 'correcthorsebatterystaple' not found in any known breach

\
\





Get All Known Breaches



\`python

def get_all_breaches():

"""List all known data breaches."""



response = requests.get("https://haveibeenpwned.com/api/v3/breaches")
breaches = response.json()

print(f"Total known breaches: {len(breaches)}")

# Sort by number of accounts
breaches.sort(key=lambda b: b["PwnCount"], reverse=True)

print("\nTop 10 largest breaches:")
for b in breaches[:10]:
name = b["Name"]
count = b["PwnCount"]
date = b["BreachDate"]
types = ", ".join(b["DataClasses"][:3])
print(f" {name}: {count:,} accounts ({date}) — {types}")




get_all_breaches()

`\






Password Strength Checker



Combine HIBP with basic rules for a proper password validator:



\`python

import re



def validate_password(password):

"""Comprehensive password validation with breach checking."""




issues = []

# Length check
if len(password) < 12:
issues.append("Too short (minimum 12 characters)")

# Complexity
if not re.search(r"[A-Z]", password):
issues.append("No uppercase letters")
if not re.search(r"[a-z]", password):
issues.append("No lowercase letters")
if not re.search(r"\d", password):
issues.append("No numbers")

# Breach check (most important!)
breach_count = check_password(password)
if breach_count > 0:
issues.append(f"Found in {breach_count:,} data breaches!")

if issues:
print(f"❌ Password rejected:")
for issue in issues:
print(f" └─ {issue}")
return False
else:
print(f"✓ Password looks good!")
return True




validate_password("MyStr0ngP@ssw0rd2026!")

`\






Integration Ideas





  • Registration forms — warn users about breached passwords before they sign up


  • Security audits — check employee passwords against breach databases


  • CI/CD — reject hardcoded passwords that appear in breaches


  • Password managers — flag stored credentials that need rotation






Rate Limits



The password API has no authentication and no hard rate limit. HIBP asks for reasonable use — they suggest adding a hibp-api-key\ header for attribution, but it's not required for the password endpoint.






Building security tools? More free API tutorials on my GitHub.

1. Sofort-Triage & Abwehrmaßnahmen

SOC Incident Playbook: Vulnerability Remediation & Verification
Syntax validiert (0 Fehler)
title: Detect Exploitation - Have I Been Pwned Has a Free API — Check If Any Email Was in a Data Breach
id: 9b987e0c-e874-42d7-8f11-55a5c313a72f
status: experimental
description: Automatisch generierte SIEM-Erkennungsregel basierend auf CTI Intelligence
references:
  - https://tsecurity.de/
author: iShareStuff CTI Automated Detection Engine
date: 2026-09-27
logsource:
  category: network_connection
  product: any
detection:
  selection:
      CommandLine|contains:
        - 'exploit'
  condition: selection
falsepositives:
  - Legitime administrative Zugriffe oder Penetrationstests
level: high
tags:
  - attack.initial_access
Syntax validiert (0 Fehler)
rule CTI_Threat_Indicator {
    meta:
        author = "iShareStuff CTI Automated Detection Engine"
        date = "2026-09-27"
        description = "YARA Signature for "
    strings:
        $str = "Have I Been Pwned Has a Free A" ascii wide
    condition:
        any of them
}
Syntax validiert (0 Fehler)
index=security sourcetype IN ("cisco:asa", "pan:traffic", "zeek_conn", "suricata", "WinEventLog:Security")
("Have I Been Pwned Has a Free API  Check ")
| stats count earliest(_time) as first_seen latest(_time) as last_seen by src_ip, dest_ip, dest_host, signature
| eval first_seen=strftime(first_seen, "%Y-%m-%d %H:%M:%S"), last_seen=strftime(last_seen, "%Y-%m-%d %H:%M:%S")
| sort - count
Syntax validiert (0 Fehler)
message: "*Have I Been Pwned Has a Free API  Check *"
Syntax validiert (0 Fehler)
CommonSecurityLog
| where Message has "Have I Been Pwned Has a Free API  Check "
| summarize EventCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated) by SourceIP, DestinationIP, DestinationPort, Activity
| extend DetectionRule = "iShareStuff-CTI-Compiled"
| sort by EventCount desc

2. Cyber Threat Intelligence & Forensik

🎯
MITRE ATT&CK Matrix Navigator 14 Taktiken
Reconnaissance
-
Resource Development
-
Initial Access
Execution
Persistence
-
Privilege Escalation
Defense Evasion
Credential Access
-
Discovery
-
Lateral Movement
-
Collection
-
Command and Control
Exfiltration
-
Impact
tsecurity.de Cognitive Threat RAG
Fokus-Vektor:

Analyse für identifizierte Bedrohung auf Basis von Live-CTI (ENISA EUVD): CVSS 0.0 · EPSS 0.0% · CISA KEV: nein. Handlungsableitung aus den verlinkten Hersteller-Quellen.

🛡️ Angriffsfläche & Exposure

Netzwerk/Remote-Zugriff ohne Vorauthentifizierung möglich.

⚡ Empfohlene Sofortmaßnahmen
  • 1. Perimeter-Inspektion: Relevante Portfreigaben und exponierte Endpunkte unverzüglich scannen.
  • 2. Patch-Applikation: Hersteller-Hotfix einspielen oder betroffene Daemons in isolierte DMZ-Segmente überführen.
  • 3. Telemetrie & EDR-Alerts: Prozessaufrufe und Child-Processes auf anomale Shell-Spawns überwachen.
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Have I Been Pwned Has a Free API — Check If Any Email Was in a Data Breach

Thematisch verwandte Begriffe: Have, Been, Pwned, Free · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

💬 Kommentare werden geladen…
Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-100620 | Capgo CLI (npm package @capgo/cli) through 7.98.2 is affected by an ove…
Advisory →
tsecurity.de Icon
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag