记一次绕过限制进行漏洞利用

admin 2024年3月1日18:21:01评论14 views字数 1895阅读6分19秒阅读模式

背景

背景为一次授权对某银行的攻防演练测试,进行记录


初探

目标Waf很多,站还少,只找到了一个感觉能搞的项目管理系统

记一次绕过限制进行漏洞利用

测试了一下,没有枚举、top500+常规弱口令跑了一下也没有弱口令 只能试试看能不能找测试站或者源码了 提取了一波指纹,在fofa上看到有19个

记一次绕过限制进行漏洞利用

非常幸运,找到一个站点有.git泄露

记一次绕过限制进行漏洞利用

查看到一部分目录,虽然不全乎,但是找到了一个组件webuploader,它是有上传漏洞的

记一次绕过限制进行漏洞利用

但是很可惜,目标站点把这个接口删除了,应该是做过了安全测试

先想法子拿到完整的代码,方便进行审计,查看发现目标站点把很多接口都删了,为了提高效率先生成一个所有接口目录结构的URI,然后用HEAD 方法探测,同步代码。

拿到完整的代码后就准备进行审计了,当然web狗肯定优先找上传啦,发现了一个管理后台疑似存在一个能利用的上传接口,接下来就想法子进管理后台。

先熟悉路由,找权限鉴定的接口。

记一次绕过限制进行漏洞利用

接着跟这个”notcheck”

记一次绕过限制进行漏洞利用

有不少,根据代码构造请求发现未授权漏洞

记一次绕过限制进行漏洞利用

用内置的用户做字典,并生成针对性口令字典(zhangsan对应口令为zs123,Zs123.这种)去爆破

发现了一个大哥的弱口令拿到普通用户权限 有权限了接着测试一波需要鉴权的接口,发现了一个信息泄露,直接返回所有用户口令md5。

记一次绕过限制进行漏洞利用

解密后登入

记一次绕过限制进行漏洞利用

用文件上传拿shell

记一次绕过限制进行漏洞利用


内网

因为内网设备比较多,所有优先找集权监控这种系统,低线程扫一波这些系统的默认端口,发现一个grafana

记一次绕过限制进行漏洞利用

用文件读取漏洞打的时候发现400了

记一次绕过限制进行漏洞利用

同时也得到了信息,grafana在这个nginx的后面,我们的payload应该被nginx处理后返回400


分析

因为也没扫到别的系统,害怕大范围扫描会掉口子,就想着接着这个点再看看。

因为我们传入payload中的URI路径超过了根目录,所以nginx返回400。

那我们的思路就是让nginx忽略掉

/../../../../../../../../../../etc/passwd

且传到后端的Grafana上 。

我们先来查看一下nginx的normailized处理大致流程

1. 解码百分号编码:URL中的百分号编码(如 %20 代表空格)会被转换成相应的字符。
2. 合并斜杠:多个连续的斜杠(如 //)会被合并为一个单独的斜杠
3. 路径合并:移除URL路径中的冗余路径元素,如..和.。例如,/path/to/../file会被标准化为/path/file。
4. 规范化路径:移除任何冗余的元素
5. 尾部斜杠处理:根据配置,可能会添加或删除URL路径的尾部斜杠。

可以看到第三步就G了,那么接着看看有没有什么情况下nginx不经过normailized

发现如果pxroxy_pass配置中没有/结尾的话,请求不会经过normailized。

记一次绕过限制进行漏洞利用

Nginx还有一个Tipes是处理锚点,如果请求中包含了#,那么Nginx会无视掉#后的部分。通过这两个特性,我们就可以构造payload

(/public/plugins/alertlist/#/../../../../../../../../../../etc/passwd)

实现绕过,本地进行实验如下:

请求

/public/plugins/alertlist/../../../../../../../../../../etc/passwd

nginx返回400,数据包到不了后端

记一次绕过限制进行漏洞利用

若nginx配置代理如下:

记一次绕过限制进行漏洞利用

此时访问

/public/plugins/alertlist/#../../../../../../../../../../etc/passwd

因为nginx会忽略掉#后面的内容,且因为特性不经过normailized,数据包会传到后端

记一次绕过限制进行漏洞利用

从而绕过nginx 400限制

记一次绕过限制进行漏洞利用

当然,如果nginx配置如下:

记一次绕过限制进行漏洞利用

这种情况下再去访问

/public/plugins/alertlist/#../../../../../../../../../../etc/passwd

Nginx进行标准化处理后就无法绕过了

记一次绕过限制进行漏洞利用

相关的应用场景有nginx反代中绕过403的控制台,相关配置如下:

记一次绕过限制进行漏洞利用


内网

回到项目上,通过文件读取漏洞读取grafana系统内保存的口令信息,分别获取secret_keygrafana.db后通过

https://github.com/jas502n/Grafana-CVE-2021-43798

解密。

记一次绕过限制进行漏洞利用

获得多个内网数据库口令

记一次绕过限制进行漏洞利用

后面就是通过数据库的后渗透拿到服务器权限再进行比较常规的横纵向渗透了。

原文链接

https://www.t00ls.com/articles-71195.html


原文始发于微信公众号(T00ls安全):记一次绕过限制进行漏洞利用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月1日18:21:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次绕过限制进行漏洞利用http://cn-sec.com/archives/2539484.html

发表评论

匿名网友 填写信息