未授权访问

admin 2025年3月12日21:35:59评论28 views字数 2310阅读7分42秒阅读模式

未授权访问

原理在于,服务器没有对用户的身份进行验证,导致攻击者可以在没有登录或者没有认证的情况下访问需要授权的数据或执行操作。

危害

信息泄露:在未经授权的情况下访问敏感信息,造成信息泄露。

恶意操作:在未经授权的情况下执行敏感操作,造成系统滥用。

漏洞示例

API接口未授权

Web应用的API接口(如数据查询、敏感操作)未对用户身份凭证(如Token、Session)进行校验,导致用户可以在未经授权的情况下调用接口,查看信息或执行操作。如下:

/api/user/list 查看用户列表接口

URL:

http://example.com/api/user/list

请求:

GET /api/user/list HTTP/1.1
Host: example.com
Cookie: session_id=abcde12345

如果该接口没有验证用户身份,就可以未授权访问,返回相关内容。

响应:

HTTP/1.1 200 OK
Content-Type: application/json

{
"status""success",
"data": [
    {
"id": 1,
"username""admin",
"email""[email protected]",
"role""admin"
    },
    {
"id": 2,
"username""test",
"email""[email protected]",
"role""user"
    }
  ]
}

测试的时候,可以使用Burp拦截请求,删除请求中的认证信息(如Cookie、Token),看是否正常响应,还可以在浏览器隐私窗口访问URL,观察是否返回内容。

文件/目录未授权

服务器敏感文件或目录没有做访问控制,用户可以直接访问,不需要身份验证或授权。

数据库未授权

数据库暴露在公网,且没有使用身份验证,攻击者无需密码可以直接访问并操作数据库。

第三方组件未授权

包括但不限于DruidSwaggerSpring Boot Actuator未授权访问,导致用户信息和数据泄露、API接口泄露等等。

Findsomething

Findsomething是一个浏览器插件,用来发现JS中的敏感信息和API接口,支持ChromeFirefox,直接到浏览器插件商城下载就行。可以配合Burp Intrader进行未授权访问漏洞的检测。

未授权访问

把插件发现的接口信息复制到txt文档中,形成一个接口字典,在Burp Intrader中使用该字典对目标进行接口遍历。

未授权访问

遍历的时候取消勾选URL编码,有些接口仅支持GET方法,有些接口仅支持POST方法,有些接口都支持但返回内容不同,所以遍历的时候,尽量两种方法都遍历一遍。有些接口参数并没有赋值,不用故意去给其赋值,可以留一个相同接口参数值为空的,进行滞空查询,有时候会获取全数据。

寻找接口参数

如果响应包返回缺少某某参数,可以加上参数再进行请求,但是很多时候缺少参数服务器并不会返回报错信息,而是直接拒绝请求,这种情况可以复制接口到JS中检索,或者使用其他请求的参数尝试,还有的接口需要分页参数才能返回数据。

GET:

GET /api/user/list?pageNo=1&pageSize=10

POST:

POST /api/user/list
{
"pageNo": 1,
"pageSize": 10
}

Bypass403

响应返回403,表示没有权限访问,如果要绕过,取决于服务器对访问控制的验证方法。

基于HTTP方法

比如服务器只拒绝GET请求,其他方法均可访问,可以尝试其他方法绕过POSTHEADOPTIONS等等。

基于Referer

服务器会检查Referer头,比如只允许来源为管理后台(携带/admin)的请求访问,那么就可以伪造Referer绕过。

基于User-Agent

基于User-Agent的访问控制是一种防止自动化工具(如爬虫、扫描器)访问网站的常见手段,绕过的话需要把该字段改为正常浏览器请求的User-Agent。

基于IP地址

服务器可能会禁止一些IP或只允许一些IP访问(如只允许内网IP),通常通过校验X-Forwarded-For头来判断,可以通过伪造一些合法IP绕过。

基于路径和文件名

服务器根据自己的路径匹配规则来对路径和文件做访问控制,比如阻止访问/admin/目录及其子目录,比如/admin/loginadmin/user等等,如果服务器校验不严,可能会导致绕过。

路径规范化绕过:

URL编码:

http://example.com%2fadmin/login

服务器只匹配/admin/,但对/编码后的路径没有过滤,并且没有编码后的二次校验,所以可以尝试对/进行URL编码或双编码进行绕过。

多斜杠:

http://example.com///admin/login

服务器只匹配/admin/,不匹配双斜杠或多斜杠,根据路径规范化,多斜杠会被解析为单斜杠,所以可以尝试多斜杠绕过。

服务器解析绕过:

大小写:

http://example.com/ADMIN/login

还是路径匹配不严格,可以尝试大小写绕过,但需要目标服务器是windows系统,windows系统不区分大小写 。

绕过方式有很多,针对403绕过也有很多自动化工具,可以根据需要选择。

预防

对重要的操作或者数据查询,必须经过身份验证,并且进行权限校验,通常使用Token或Session进行身份验证。并在高风险操作(如资金转账、敏感信息修改)时增加二次验证机制(如验证码、双因素认证)。

总结

如果你对安全感兴趣,别忘了关注我们,持续为你带来最新的安全动态与技术分享!

原文始发于微信公众号(AlertSec):未授权访问

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月12日21:35:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   未授权访问https://cn-sec.com/archives/3832808.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息