信呼OA2.6.3文件上传漏洞

打印 上一主题 下一主题

主题 917|帖子 917|积分 2751

侵权声明
本文章中的全部内容(包括但不限于笔墨、图像和其他媒体)仅供教导和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地认可该内容的版权归原作者全部。
如果您是版权持有人,并且以为您的作品被侵占,请通过以下方式与我们联系: [360619623@qq.com]。我们将在确认后的合理时间内采取适当步伐,包括删除相关内容。
感谢您的理解与支持

0x00漏洞poc

上传:
  1. index.php?d=main&m=flow&a=copymode&ajaxbool=true
  2. POST:
  3. id=1&name=a{};phpinfo ();class a
复制代码
访问:
  1. //地址一
  2. webmain/flow/input/mode_a%7B%7D%3Bphpinfo%20%28%29%3Bclass%20aAction.php
  3. //地址二
  4. webmain/model/flow/2%7B%7D%3Bphpinfo%20%28%29%3Bclass%20aModel.php
复制代码
0x01漏洞分析

通过poc找到文件上传点
webmain -> main -> flow -> flowAction.php -> copymodeAjax()
copymodeAjax函数上半部分

红框一
获取输入进来的name值并且全部转换成小写
红框二
判断输入进来的name在数据库中是否已经存在,如果已经存在本次上传结束,如果需要上传多次验证debug此时文件需要修改,我的建议是修改calss后面的字母
判断前id参数是否在数据库中存在,即是否存在id号的模板

copymodeAjax函数下半部分

红框一
获取本次复制模板的所以文件数量和模板位置
红框二
$from = str_replace('{bh}',$obha,$file);得到正真模板的位置,参数obha是存在模板名,参数file是模板位置的模板

$to   = str_replace('{bh}',$bhnu,$file);获取存放复制结果的地方,和获取模板是同样的原来
红框三
从模板中获取文件内容
这行代码的目的是在 $fstr 中找出全部的'flow_'.$obha.'ClassModel'模板名,并用 'flow_'.$bhnu.'ClassModel' 更换掉它们,此中的bhnu的值等于name

跟进createtxt()函数
第一句就是创建文件。
第二个红框位置是测试文件是否可以创建并打开,如果失败无法写入。

两个if判断都是同样的效果,这就相对于将一句话或其他测试语句写入文件达到文件上传的目的。
其他的模板就是完全复制没有修改,这就是为什么有两个访问路径

poc组成(瞎猜版)
  1. name=a{};phpinfo ();class a
复制代码
我分成三部分
第一部分a{};
以为是为了和前面的class进行闭合,为了使中心的语句起作用和sql注入闭合'分号差不多。
第二部分phpinfo();
危险函数
第三部分class a
试了一下如果将a删除此时calss关键字就不会起作用,此时类名会报错无法正常访问该文件,因为访问会报错。
可以看出该模块是担当前面的那个class的职责

以上内容纯属瞎猜
0x02漏洞复现

1、发送文件上传包

2、访问

我试了一下getshell没有办法创建文件,大概是修复了

0x03总结

我感觉上传方式很新奇,大概是见识少了
危险函数createtxt()

0x04参考

信呼OA平凡用户权限getshell方法 - FreeBuf网络安全行业门户
免责声明
本博客所提供的技术知识和信息仅旨在教导和分享网络安全最佳实践,促进网络安全意识的提升。作者严禁将这些技术和信息用于任何非法或不道德的目的。
使用本博客内容而导致的任何违法行为或结果,作者不承担当何法律责任。全部读者在使用本博客的信息时,应自行承担风险,并确保服从当地法律法规。
我们鼓励全部读者合法地使用所提供的信息和技术,致力于维护安全和负责任的网络环境。
感谢您的理解与支持。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表