Fork
web archive
Deformity PHP Webshell、Webshell Hidden Learning - 郑瀚Andrew.Hann - 博客园
数据安全风险评估方法浅析 - 安全内参 | 决策者的网络安全知识库
和小顾有两次让我印象... - @就叫钥匙吧的微博 - 微博
宝塔前台 RCE 复现 + 分析(1click)
Typecho 事件始末
有用和无用
一文搞懂如何从头开发一个Hello World级eBPF程序
简单聊下最近2个有意思的漏洞
代码理解之代码可读性:代码反混淆 - 知乎
渗透测试 - 黑客技术 | 多种方式执行XSS_吾爱漏洞
反沙箱CobaltStrike木马加载器分析 - FreeBuf网络安全行业门户
Ahnar1p微博
聊下最近的CVE-2022-30190
Shiro反序列化漏洞笔记五(对抗篇)
CVE-2022-23222
Web登录认证类漏洞总结 | 技术精选0137
快速傅里叶变换(FFT)算法新手视频教程
本文档使用 MrDoc 发布
-
+
home page
Web登录认证类漏洞总结 | 技术精选0137
做渗透测试的过程中,碰到过各种各样千奇百怪的Web系统。因此,打算写一篇聚焦于如何获得Web系统权限这个主题的文章。 因为其中的复杂性和特殊性,所以部分内容将通过通用漏洞和自己碰到过的漏洞来演示。部分演示漏洞可以在: "https://github.com/vulhub" 此网站上复现,或者通过搜索语法,搜索关键词,根据情况进一步了解。 **1** **情景列举** 首先来看下几类漏洞情景。 - 登录失败返回包修改,例如“false”改为“true”,响应数值“0”改为“1”,登录后台。如果存在这些情况,一般前端Js、Html也可以直接找到后端对应的各类未授权访问接口; - 未授权访问,直接访问对应链接即可获得系统权限; - 账号密码默认填充,直接点击即可登录; - Js、Html存在用户名密码注释信息; - 弱口令爆破,使用一些用户名、人名、密码字典等进行爆破; - 根据系统查找系统对应的默认账号密码登录; - 有些系统的密码为空,密码不填或者抓包后置空发送; - 存在信息泄露手机号、邮箱、人名等可以到社工库查找对应的密码; - 有些密码需要根据收集的信息进行社工字典密码生成才能得到,附两个github项目: "https://github.com/Mebus/cupp" "https://github.com/zgjx6/SocialEngineeringDictionaryGenerator" - 用户名或者密码字段存在sql注入,比较典型的是万能密码登录,例如’or 1=1 #在某些字典也集成了对应payload; - 存在sql注入翻找用户名密码,有时候无法解密,但是用户登录处加密功能与数据库里最终加密结果一样,抓包后替换即可; - XSS打到后台cookie登录; - 管理系统可以注册成为管理员,内部人员所使用的系统在公网直接注册成为内部人员,从而获取到特殊的权限; - 页面无注册功能,通过Js或Html找到隐藏注册接口注册登录; - 注册时验证码没有做好绑定,删除验证码参数,或者验证码参数为空可以注册; - 验证码没有做好绑定,发送了验证码但是后端接收到任意验证码都可以注册、爆破、重置密码等; - 注册成为低权限账号后越权到管理员权限; - 发送验证码后回显到返回数据包中; - 验证码过于简单可以爆破或者识别; - 忘记密码输入合法用户后,通过验证码漏洞或者篡改认证手机号、邮箱,重置密码登录。 **2** **具体情景** **锐捷RG-UAC统一上网行为管理审计系统账户硬编码漏洞** CNVD-2021-14536锐捷RG-UAC统一上网行为管理审计系统存在信息泄露漏洞,攻击者可以通过审查网页源代码获取到用户账号和密码,导致管理员用户认证信息泄露。 title:"RG-UAC登录页面"&& body="admin"; app:"锐捷RG-UAC统一上网行为管理审计系统";  访问页面源代码搜索admin:  将md5加密后的password字段解密后登录。 **LinkDCS系列监控账号密码信息泄露漏洞 CVE-2020-25078** Fofa app:"D\_Link-DCS-2530L"; 访问路径:/config/getuser?index=0显示账号密码:  **Kyan网络监控设备账号密码泄露漏洞** fofatitle:"platform - Login"; 访问/hosts ,显示用户名密码:  **harbor注册功能逻辑漏洞CVE-2019-16097** 此漏洞属于一个严重的权限提升漏洞,该漏洞使任何人都可以在其默认设置下获得管理员权限,在注册时,post包最后加上"has\_admin\_role":true,即可注册成为管理员。  在post包最后加上"has\_admin\_role":true,注册成功:  使用注册后账号密码即可访问获得管理员权限。 **Nacos身份验证绕过(CVE-2021-29441)** Nacos是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,致力于帮助发现、配置和管理微服务。 Nacos提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。 该漏洞发生在nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。 开发者原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。 利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息:  burp中,proxy->options->Matchand Peplace模块将user-agent设置为Nacos-Server:  访问漏洞接口:  添加一个账号:账号密码都为vulhub:  **ApacheShiro身份验证绕过漏洞(CVE-2020-1957)** ApacheShiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 在ApacheShiro 1.5.2以前的版本中,在使用Spring动态控制器时,攻击者通过构造"..;"这样的跳转,可以绕过Shiro中对目录的权限限制。  直接访问/admin目录302跳转,使用/xxx/..;/admin/绕过目录权限限制:  **AppWeb身份验证绕过漏洞(CVE-2018-8715)** AppWeb是EmbedthisSoftware LLC公司负责开发维护的一个基于GPL开源协议的嵌入式WebServer。他使用C/C++来编写,能够运行在几乎现今所有流行的操作系统上。当然他最主要的应用场景还是为嵌入式设备提供WebApplication容器。 AppWeb可以进行认证配置,其认证方式包括以下三种: - basic传统HTTP基础认证; - digest改进版HTTP基础认证,认证成功后将使用Cookie来保存状态,而不用再传递Authorization头; - form表单认证; 其7.0.3之前的版本中,对于digest和form两种认证方式,如果用户传入的密码为null(也就是没有传递密码参数),AppWeb将因为一个逻辑错误导致直接认证成功,并返回session。 利用该漏洞需要知道一个已存在的用户名,当前环境下用户名为admin。 构造头: ``` Authorization:Digest username=admin ``` 并发送如下数据包:  可见,因为我们没有传入密码字段,所以服务端出现错误,直接返回了200,且包含一个session:  设置这个session到浏览器,即可正常访问需要认证的页面:  **ApacheAirflow 身份验证绕过(CVE-2020-17526****)** ApacheAirflow是一款开源的,分布式任务调度框架。默认情况下,ApacheAirflow无需用户认证,但管理员也可以通过指定webserver.authenticate=True来开启认证。 在其1.10.13版本及以前,即使开启了认证,攻击者也可以通过一个默认密钥来绕过登录,伪造任意用户。 首先,我们访问登录页面,服务器会返回一个签名后的Cookie:  然后,使用flask-unsign这个工具来爆破签名时使用的SECRET\_KEY:  成功爆破出Key是temporary\_key。使用这个key生成一个新的session,其中伪造user\_id为1:  在浏览器中使用这个新生成的session,可见已成功登录:  **ApacheCouchdb 远程权限提升(CVE-2017-12635)** ApacheCouchDB是一个开源数据库,专注于易用性和成为“完全拥抱Web的数据库”。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库,应用广泛。如BBC用在其动态内容展示平台,CreditSuisse用在其内部的商品部门的市场框架。 CVE-2017-12635,是由于Erlang和JavaScript对JSON解析方式的不同,导致语句执行产生差异性导致的。这个漏洞可以让任意用户创建管理员:  可见,返回403错误: ``` {"error":"forbidden","reason":"Only_admin may set roles"} ``` 只有管理员才能设置Role角色:  发送包含两个Roles的数据包,即可绕过限制:  成功创建管理员,账户密码均为vulhub,成功登录:  **Influxdb未授权访问漏洞** Influxdb是一款著名的时序数据库,其使用jwt作为鉴权方式。在用户开启了认证,但未设置参数shared-secret的情况下,jwt的认证密钥为空字符串,此时攻击者可以伪造任意用户身份在Influxdb中执行SQL语句。 环境启动后,访问: "http://your-ip:8086/debug/vars" 即可查看一些服务信息,但此时执行SQL语句则会出现401错误:  借助https://jwt.io/来生成jwttoken: 其中,admin是一个已经存在的用户,exp是一个时间戳,代表着这个token的过期时间,你需要设置为一个未来的时间戳。 最终生成的token:  设置后成功访问:  **DVR登录绕过漏洞(CVE-2018-9995)** Googlehacking : intitle:”DVR Logion” 访问device.rsp?opt=user&cmd=list,并设置Cookie:uid=admin,即可返回此设备的明文管理员凭证。  **ApacheAPISIX 默认密钥漏洞(CVE-2020-13945)** ApacheAPISIX是一个高性能API网关。在用户未指定管理员Token或使用了默认配置文件的情况下,ApacheAPISIX将使用默认的管理员: "Token edd1c9f034335f136f87ad84b625c8f1" 攻击者利用这个Token可以访问到管理员接口,进而通过script参数,来插入任意LUA脚本并执行。 利用默认Token增加一个恶意的router,其中包含恶意LUA脚本:   Druid控制台seesion泄露获取后台权限:  某次项目,在session监控中发现大量session后,在url监控里面找到一个感觉最可能带有session访问且会有对应数据的leftNavProfession.jsp路径,拼接域名后,访问链接并使用burp抓包。 然后将session监控里面的所有session提取出来,放到burp爆破,最终爆破出来几个返回长度不一样数据包,都为有效session。其中数据包最大的是超级管理员权限,其余权限不同的账号返回数据包大小也有区别。 具体操作步骤可查看以下链接: "https://baijiahao.baidu.com/s?id=1660969810444268979&wfr=spider&for=pc" **Springboot的http认证信息泄露** Springboot存在Httptrace或者/actuator/httptrace接口,可能泄露cookie,通过提取其中的认证信息访问对应系统,获取相应权限。 更多Springboot相关漏洞可访问: "https://github.com/LandGrey/SpringBootVulExploit"  **外网系统点击链接后访问内网IP** 碰到过一些系统,在登录或使用其它功能时指向如172.16.\*.\*、192.168.\*.\*、127.0.0.1之类的内网ip。 如下图案例,点击登录功能会指向127.0.0.1:8080/axis2/,通过burp中proxy->options->Matchand Peplace模块设置规则后,将127.0.0.1:8080转化为目标外网ip,成功登录。   **登录系统时ip地址禁止访问** 某些站点访问时显示“禁止外部ip访问”、“登录ip不是白名单ip”等。 可以使用burp插件绕过,伪造ip为127.0.0.1、0.0.0.0之类的ip进行绕过。 "https://github.com/swagkarna/Burp-FakeIp"  **3** **总结** 希望此篇文章可以帮助大家对于从黑盒、白盒方面挖掘Web登录认证漏洞有更多的思路。
webfork
June 9, 2022, 10:53 a.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
share
link
type
password
Update password