UCAS三月升级赛

这次比赛做了一个web题,知识点挺多的,但做题经验还是不够,希望以后再接再厉~

0x01 java代码审计

        第一步粗略看了看,大致判断了一下题目框架,典型的SSH项目:大致是springboot整合shiro 实现了一个用户登陆,然后重写了CredentialMatcher做的md5密码校验。然鹅,也就是第一步习惯性对java代码功能以及框架的判断让我忽视了很多重点,再加上返回头里面rememberme的信息,导致一上午都纠结在shiro的反序列化漏洞上了。


header

        后面在mote的提示下,重点去看了pom.xml,啊,发现自己漏了很多。首先shiro是最新版本(其实这里之前就看到了,但我一直认为shiro的这个漏洞与版本关系不大,重点在密钥的泄露,但细想想这时候出题人标注出来版本肯定是有其用意的,这里一上午陷入死胡同了),然后便注意到了xstream是1.4.7版本,巧的是该版本并不在xstream RCE漏洞影响范围内。果然不能偷懒,细心点继续看代码。


pom.xml

        重新审视一遍代码,发现自己着实漏了很多重点,对java代码的敏感性还是不大够。首先loaddocument的load是DOM Read XML,这里就很熟悉了,显然是XXE。然后转到convert,调用了xstream,对此功能点也表示怀疑,但由于测试用户权限问题,暂时先没法儿进行判断。于是xxe走起~
apicontroller

load方法

xstream

0x02 漏洞入口

        一波xxe测试下来,也没有读到什么有用的信息。此时放了个tip,提示重点并不在xxe。果然,升级赛并没有那么简单。重新看了下源码,发现mysql账号密码都给出来了,又想到convert功能点需要高权限,便怀疑是XXE配合SSRF登录mysql读admin密码。又尝试了一波gopher连接mysql,并没有任何响应,大概率并不支持该协议。于是搜了一下java下的可用协议,想起了netdoc,果然查看历史命令的时候发现了一个sql文件。


xxe

0x03 XStream Rce

        有报错,但接下去就没思路了,这里一度怀疑大佬们拿了个0day来玩(生无可恋的绝望)......

xstream

        秉承着不抛弃不放弃的理念,找到了XStream-Rce-空指针CTF一月内部赛Writeup这篇博客,这才有了些头绪。前面的链跟s2-052是一样的,后面则是利用defineclass来做。真的是甘拜下风🤜有时间再好好记录一下这边的学习历程和复现过程。

学习链接:
1、shiro反序列化漏洞
2、java xxe漏洞写法与防御
3、不同库的java xxe漏洞
4、gopher连接mysql
5、java xxe协议思路
6、https://github.com/mbechler/marshalsec

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问:Sql 注入无回显的情况下,利用 DNSlog,mysql 下利用什么构造代码,mssql 下又如何? 答: ...
    唐小风7阅读 4,143评论 0 2
  • 1. XXE简介 XXE(XML外部实体注入,XML External Entity) ,漏洞在对不安全的外部实体...
    AxisX阅读 9,755评论 0 2
  • Struts2-052漏洞学习 了解漏洞 Struts是什么? Struts是一个特别常用的开源web框架,用于扩...
    折戟尘风阅读 9,812评论 1 7
  • 写在前面 在一款应用的整个生命周期,我们都会谈及该应用的数据安全问题。用户的合法性与数据的可见性是数据安全中非常重...
    日拱一兵阅读 8,382评论 3 79
  • 一、weblogic ssrf攻击redis Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTT...
    Instu阅读 9,185评论 2 0

友情链接更多精彩内容