华天动力OA文件上传代码分析


壮观给黑夜
壮观给黑夜 2023-11-08 17:20:56 64011
分类专栏: 资讯

1.漏洞成因:

文件上传时,由于校验不全、限制不当,可能导致被上传webshell、拒绝服务、任意文件写入等安全问题。

2.审计策略:
简单来说就是审计⽂件类型不校验或校验不当
审计检查上传⽂件的⽂件类型
审计是否限制了⽂件上传路径
是否对⽂件进⾏了重命名或对\u0000进⾏过滤
审计⽂件⼤⼩是否限制
审计是否返回了⽂件路径或⽂件路径很好猜测

3.审计常见的函数

FileUpload
FileUploadBase
FileItemIteratorImpl
FileItemStreamImpl
FileUtils
UploadHandleServlet
FileLoadServlet
FileOutputStream
DiskFileItemFactory
MultipartRequestEntity
MultipartFile
上传

4.代码分析

废话不多说我们来看代码,通过搜索upload参数我们可以看到很多地方使用了upload这个参数但是我们重点关注upload.jsp这个文件。

图片

进入到upload.jsp代码中,对代码进行解读其实逻辑很简单,先分析13-33行代码,先是获取一个临时路径savePath然后创建一个文件对象f1来表示该路径然后判断是否存在,不存在的话就新建一个。再往下分析创建了一个DiskFileItemFactory对象(DiskFileItemFactory是Commons FileUpload 库中的一个类),设置上传请求为UTF-8编码。在往下分析发现使用了upload.parseRequest(request)方法解析文件上传请求来获取上传的文件项列表。如果解析过程中发生异常,将打印异常信息并return回去,如果文件列表为空也会直接return。

图片

上面分析了13-33行代码下面接着分析34-54行代码,这段代码我理解是一个循环用来遍历文件列表和文件上传。可以看到fileList参数是对文件进行遍历,然后41行代码是获取文件名然后进行判断。如果文件名为空或者包含空格就会继续下一次循环。44-57行代码使用了OaTools.gainedFileName方法生成一个新的文件名然后临时路径和文件名进行拼接赋值给f。然后使用write()方法写入文件后将服务器的物理路径和临时文件名作为响应输出。

图片

这个时候我们就可以构造上传数据包进行上传来获取服务器的绝对路径,当然我们最终的目的不是为了获取一个服务器绝对路径那么简单呀。我们接着搜索upload参数会发现ntkoupload.jsp文件里面存在文件上传,其中的newFileName参数需要知道系统里存在的文件进行覆盖,正好我们在审计upload.jsp文件中获取到了服务器的绝对路径,我们可以进行组合进行上传。

图片

图片

自己在源码处加了注解只是个人理解有些注解写的不好的地方各位大佬担待担待。截图如下:

图片

图片

图片

到这里代码就已经分析完了,通过upload.jsp文件上传获取到服务器的绝对路径然后又通过ntkoupload.jsp文件进行文件覆盖上传。

漏洞复现的话现在网上已经有很多poc和exp了大家了直接去找漏洞复现文章就行啦,推荐一个漏洞复现写的不错的公众号。

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

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=28213
赞同 0
评论 0 条
壮观给黑夜L0
粉丝 0 发表 11 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1487
银河麒麟打印带有图像的文档时出错  1405
银河麒麟添加打印机时,出现“server-error-internal-error”  1194
统信操作系统各版本介绍  1116
统信桌面专业版【如何查询系统安装时间】  1114
统信桌面专业版【全盘安装UOS系统】介绍  1068
麒麟系统也能完整体验微信啦!  1026
统信【启动盘制作工具】使用介绍  672
统信桌面专业版【一个U盘做多个系统启动盘】的方法  616
信刻全自动档案蓝光光盘检测一体机  526
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!