时空智友任意文件上传漏洞分析

免责申明

本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。


0x00 前言

    之前时空智友曾爆出来一个任意文件上传漏洞,漏洞POC大家可以自行百度看看,今天针对这个漏洞做一个漏洞分析文章

0x01 漏洞分析

漏洞涉及地址为/formservice?service=attachment.write&isattach=false&filename=文件名称

漏洞涉及到的地址为formservice地址,我们在源码当中全局搜索这个地址(这套源码使用了servlet技术),所以地址只有两种方式,一种为xml文档进行映射路径,另一种是注解方式直接表明路径,我们现在xml当中搜索路径

时空智友任意文件上传漏洞分析

发现这个路径对应的文件为

时空智友任意文件上传漏洞分析

Ctrl+鼠标左键跟入文件

时空智友任意文件上传漏洞分析

跟入到文件当中,继续看POC/formservice?service=attachment.write&isattach=false&filename=文件名称

参数为service参数传入了attachment.write,在映射文件FormService当中搜索参数service参数

时空智友任意文件上传漏洞分析

调用了Getservice方法传入两个参数并且接收参数service参数,并且返回给var6一个数组,第一个类型为class类型并且实例化了用户传入的参数service,这里其实用了JAVA当中的反射

查看POC

时空智友任意文件上传漏洞分析

看到用户传给service参数为attachment参数,那么程序对这个attachment进行了实例化,继续看POC还进行了调用了writ方法,查看attachment类,先进行全局搜索

时空智友任意文件上传漏洞分析

跟入到对应类当中com.artery.form.services.Attachment类

时空智友任意文件上传漏洞分析

类当中搜索调用的write方法

时空智友任意文件上传漏洞分析

write方法当中接收两个参数一个是filename参数,另一个为isattach方法

在 if (isattach)代码当中可以看到如果为true的话进行了下面的一些操作数据库的代码,继续往下查看如果不是true会执行哪些代码

时空智友任意文件上传漏洞分析

如果参数isattch为flase那么会执行上述代码,上述代码将输入流的数据写入到了一个临时文件当中,存储路径为

时空智友任意文件上传漏洞分析

因为我们是false也就是/form/temp/文件名称

Chat GPT回答

时空智友任意文件上传漏洞分析

然后继续往下走,进行了回显文件名,因为上述文件名最后是一个编码之后的文件名称

时空智友任意文件上传漏洞分析

Over Over~~

0x02 完结

EXP脚本编写需要可以直接找作者要

时空智友任意文件上传漏洞分析

时空智友任意文件上传漏洞分析

原文始发于微信公众号(进击安全):时空智友任意文件上传漏洞分析

版权声明:admin 发表于 2023年10月24日 下午1:27。
转载请注明:时空智友任意文件上传漏洞分析 | CTF导航

相关文章

暂无评论

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