背景
嗯,就一个项目吧~
过程
客户要求二次测试某个系统,洞要越多越好
要求测试的系统是金蝶的系统,也找不到什么好用的攻击手段,挖了几个XSS但感觉没有意思,大部分权限由于license问题,都无法使用,不知道还能搞啥。
在一个叫做学习平台功能模块处发生跳转到8092端口上去。
后续观察数据包的时候发现,跳转形式是 http://xxx.com:8092/login?username=xx&token=xxx
抱着试一试的心态试了一下,将userName换成了admin,重新访问后,直接以管理员的身份进入这个系统的后台。
后续了解说之前挖到这个洞过,但是客户不收。但由于没地方搞了,就准备看一下。
绕了半天在一个 流程模板 的功能点发现使用了一款叫做flowable的流程编辑器。
然后看了一下,发现了一个叫做shell任务模块。
试了一下,在里面写入命令,但好像根本没有地方可以让这个任务跑起来,后续去看了一下文档,也没有找到特别多的可利用信息。
找了一圈得shell任务是怎么写的。
<serviceTask id="shellEcho" flowable:type="shell" >
<extensionElements>
<flowable:field name="command" stringValue="cmd" />
<flowable:field name="arg1" stringValue="/c" />
<flowable:field name="arg2" stringValue="echo" />
<flowable:field name="arg3" stringValue="EchoTest" />
<flowable:field name="arg4" stringValue=">" />
<flowable:field name="arg5" stringValue="D:kingdeelmscontentsec.txt" />
<flowable:field name="wait" stringValue="true" />
<flowable:field name="outputVariable" stringValue="resultVar" />
extensionElements>
serviceTask>
这边是图形化界面,可以直接进行配置,如下:
但还需要找到解决办法,后续看到他已经配好了一个完整的流程,我就在他开始流程后插入了这个shell任务。
然后保存后通过另一个点将这个新的模板进行部署,到现有的功能中去,意味着我只要去发起这个流程就能触发我的shell命令。
部署:
发起对应的培训需求申报流程:
开始尝试的是写入了一个txt文件,成功
然后尝试写入jsp文件,下载.....,其他目录也不行,估计是jar包那种环境
由于系统是Windows,准备用CS上线。
将命令改成powershell的指令
再次发起流程,ok
总结
1、如果上次他们接受了越权漏洞,那么可能我就遇不到这个功能点了,存在运气成分。
2、这个东西搜得到shell命令执行可以getshell,但没啥细节,虽然看着不太难,但是确实有点搞人心态。不像Zeppelin这种一写,原地执行,需要你去梳理怎么触发这个流程,稍微多啃一下下。
3、照顾好自己的身体,不要像我一样神志不清的挖洞,浪费时间又没产出。
原文始发于微信公众号(安全宇宙):【创宇小课堂】渗透测试-越权跳转导致的flowable命令执行
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论