虽然但是……有件事比RCE还让人开心

渗透技巧 2年前 (2021) admin
575 0 0

“本故事纯虚构,如有雷同,纯属巧合”


忙活到晚上十点多,好多辛酸

虽然但是......有件事比RCE还让人开心


正文




消息框闪烁,是领导丢过来一个exe

“审一下,只要RCE”

打开虚拟机,安装过程很傻瓜,下一步下一步就可,心想审完晚上就可以去吃很久以前了,很可惜,license过期了。按照之前的思路,尝试修改了服务器时间,还是不太行。

还好应用是运行在tomcat之上,tomcat报错日志很完整,可以准确定位到lincense校验逻辑

虽然但是......有件事比RCE还让人开心


将jar放到本地idea,反编译后,做了一些混淆操作,看起来不太友好。因为是Tomcat的项目,先配置调试一波,by the way,因为是启动时做的license校验,需要使用LIsten to remote JVM的方式调试,且参数suspend需设置为y

虽然但是......有件事比RCE还让人开心
set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10010


因为加了一些防反编译的措施,所以正常的调试也遇到了很多问题,行号不对应,断点只能下到方法上,凑活看吧,不过根据类名以及全局搜索License关键字,还是勉强可以定位到check逻辑

虽然但是......有件事比RCE还让人开心

首先尝试直接将getLicense 全部清除,直接new 一个新的

虽然但是......有件事比RCE还让人开心

太暴力了,Tomcat启动报错,访问哪个页面都是500

虽然但是......有件事比RCE还让人开心

然后尝试构造License这个类,这里又遇到了混淆的坑,License类里面套了多个ilililililililll类,这个类不可读,放弃了。

再从头调试,虽然只能端到方法上,但是死盯着debugg框,发现了一组base64数据,解密出来长这个样子,毫无疑问就是那个过期的license解密出来的数据了

虽然但是......有件事比RCE还让人开心

这时候我们换个思路,尝试调用加密逻辑伪造license

首先寻找license的源文件,在安装目录的conf下,找到了license.xml 长得样子很像license,里面有签名 有效实现等参数

虽然但是......有件事比RCE还让人开心

然后再去代码中查找相关解密函数

虽然但是......有件事比RCE还让人开心

我先将断点下到了解密函数中,尝试很多次都停不下来,直接停到解密后的数据

沉思…..将断点下到配置文件加载处,license.xml确实是被加载到jvm中….

只能硬着头皮本地直接调用了

虽然但是......有件事比RCE还让人开心

将修改后的lincese.xml放到虚拟机中,还是无效…..陷入僵局…..

只能在从头跟代码了,期间注意到启动时加载了很多配置文件,一个个去翻,皇天不负有心人,翻到一个css文件夹下的文件时,突然兴奋了起来,里面是一串base64编码后的数据

虽然但是......有件事比RCE还让人开心

直接解码后正是上述debug中的license,真狗,原来根本没调用加密解密逻辑。不过后面还跟了一串签名校验,此时已经跟了很多代码,代码比较熟悉了,直接就定位到了签名校验处:

虽然但是......有件事比RCE还让人开心

注释掉校验逻辑,再改一下license,有效期到2099年,放上去,大功告成!

虽然但是......有件事比RCE还让人开心


原文始发于微信公众号(赛博少女):虽然但是……有件事比RCE还让人开心

版权声明:admin 发表于 2021年11月25日 上午10:08。
转载请注明:虽然但是……有件事比RCE还让人开心 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...