记录一次遗憾的渗透测试(已更新,不再遗憾 ~)

序言

这是这是一次实战,但是因为一些原因无法进行渗透测试getshell的最后一步,故在此贴中记录下来

声明:

此文章仅用于本人记录网络安全学习过程,文章内的所有操作均是在得到授权的情况下进行的

任何人利用参与违法违规操作,均与本人无关

本人呼吁,我国拥有一套完整的网络安全法,请不要利用缺陷进行违法违规操作

实战过程

进入页面

ade443ae5bc7486e92df6f95e0e913e9.png

老大给了个提示跟我说,此次渗透是Spring boot shiro的反序列化利用,与登录没有相关

既然跟登录没有相关的,那基本就是路径,传参,源码,报文有关了

那就先试试,Spring boot未授权访问

image.png

image.png

行吧,没东西

查看前端页面源码

684b39caccec2714bc8ff9b06a8f542c.png

发现一个参数传递

再看看报文

5a1e3ee36d2b87425ae2117dedc166f61.png

登录框登录的报文跟查看源码的参数传递是同一个,那估计就是这里有问题了

先尝试看看有没有目录穿越漏洞

ef0f2ae0109bf78fa1aee086a247c6781.png

有目录穿越漏洞

既然可以查看etc/passwd文件,那么还可以查看其他敏感文件,比如/proc的子目录

/proc目录是linux的一个文件系统,此目录可以查看系统中执行过的命令,已启动的站点环境等敏感信息

ls -al /proc/可以查看当前正在执行的进程的PID

image.png

cat /proc/28/cmdline

cmdline子目录是查看执行了当前进程的完整命令

image.png

cat是shell的命令,所以可以看到此进程是bash的进程

ls -al /proc/28/exe

exe子目录是指向当前进程的完整路径及符号链接

image.png

ls -al /proc/28/fd

fd子目录是记录当前进程的文件描述符,此描述符是实际文件的符号链接

image.png

cat /proc/28/environ

environ子目录是记录当前进程的环境变量

image.png

cat /proc/self

self子目录是用来表示当前进程的PID,相当于动态的PID,会随着进程的PID进行变化,不同的进程拥有不同的PID,所以不同的进程使用self就是相当于当前使用的进程的PID

image.png

image.png

可以看到使用不同的进程查看,就是不同的PID


OK介绍完/proc目录,现在的思路就是利用文件包含来找到内存文件!来找到shiro的key!!

文件包含漏洞会包含指定的文件

http://********:****/show/showfile?file=../../../../../../../../../../../proc/self/cmdline

这里加这么多../是为了保证能回到根目录里

image.png

image.png

直接下载了一个文件

记事本打开

2c4ad5d66fec4861967c8c9b9fe48072.png

有一个jar包,利用文件包含直接下载

2fc045f189bd4789cf460357bcda8cb31.png

解压,获得源码

image.png

然后在 BOOT-INF/classess/com/qax/wtf/config/JavaMelodyConfig.class文件中找到这么个路径

966add43ab20312fd8c2ed62bea3df80.png

进入此路径

f7d0504ce0d4d731013f39fe13ee14841.png

进入一个监控页面,Spring boot未授权访问

查看内存直方图

f7d0504ce0d4d731013f39fe13ee14841.png

生成临时内存文件,然后使用文件包含漏洞进行下载

61c6eec4e126dc1ac46163eb3ba0ae8d1.png

使用VisualVM搜索 org.apache.shiro.web.mgt.CookieRememberMeManager找到

dd905c4ab3ce603245651efbacb2521c.png

使用python3代码去解码

af42cf9e938a7a49fd79b5d4ad28a4c5.png

得到key(key每次重启环境就会更新)

60a6a6e52375381757e01fcdbd02f7f6.png

检测key成功

但是!命令执行一直返回这个东西!我的key还有构造链都是测试成功了的。。这是为什么?

image.png

想了一会儿是不是站点的问题,我去到站点一看,果然!

image.png

@#(@!&)(!#&$!&@(*&KPHCYB(~GN{OX8OYD_5AD08.jpg

我捏嘛嘛怎么就这么及时呢?怎么就这么巧呢??我刚准备拿到shell就给我来这么一出,是不是有内鬼(bushi?

开个玩笑,唉。。只能说运气不好吧(老霉B了)-2Y$ULQTFE{H{-2N7D51DJX.jpg

使用漏洞

记录所使用的漏洞

文件包含

此漏洞未对传参参数进行限制,可以任意包含系统中所有文件

Spring boot 未授权访问

SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品,是用来简化 spring 初始搭建和开发过程使用特定的方式进行配置

此漏洞可以获取Spring boot系统环境信息

apache Shrio反序列化

Apache Shiro 是一个强大灵活的开源安全框架,可以完全处理身份验证、授权、加密和会话管理。

Shiro为了让浏览器或服务器重启后用户不丢失登录状态,Shiro 支持将持久化信息序列化并加密后保存在 Cookie 的 rememberMe 字段中,下次读取时进行解密再反序列化。但是在 Shiro 1.2.4 版本之前内置了一个默认且固定的加密 Key,导致攻击者可以伪造任意的 rememberMe Cookie,进而触发反序列化漏洞。(此段摘至)

结语

结合这几天的遭遇

  • 脚本遇到bug
  • 吃辣条导致智齿发炎,半边脸都肿了
  • 准备getshell站点刚好没了

寒寒冬日中近虽天日怜人,阳光暖照,但事与愿违,遇事冷心!不禁叹句:

当今霉B!布某人也~ZCYAK(39Q0$VN5V%X%F~D6G.jpg

更新~

下楼买完菜回来,太不甘心了,想着再试试

结果你猜怎么着,它开了!!!它活了!!!芜湖!赶紧再获取一次key

image.png

image.png

成功getshell!!!!!!!!!!!!!

image.png