免责申明
本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。
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脚本编写需要可以直接找作者要
原文始发于微信公众号(进击安全):时空智友任意文件上传漏洞分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论