一个shell的记录
The following article is from 雁行安全团队 Author 犬夜&叉
公众号现在只对常读和星标的公众号才展示大图推送,
建议大家把听风安全设为星标,否则可能就看不到啦!
----------------------------------------------------------------------
风和日丽,打算再睡个回笼觉,被电话吵醒
前方项目小伙伴说打的点太多了,有点忙不过来,让帮忙写个shell
挑了个能rce的。管理员权限
看了下,应该是某友的文件上传,那为什么不直接上传个webshell呢?
java咱也不懂,咱也不敢问。
问了度娘,基本都是这两种
1.利用这个漏洞写的命令执行shell
2.写的ldap地址,每次lookup进行rce
咱也没有服务器,那这个命令执行的shell将就着用吧,
打算找到web目录的路径写个shell,用起来方便些。
接下来,问题就来了,我想看一下当前路径,报错了
再试了些其他命令,很多都报错,没法执行,很糟糕。那我不用单命令,挨个文件看总行了吧,可惜还是报错
凭感觉,我猜是java语句的问题,可我不会改啊。有点后悔当初在学校没好好学java。
于是我找了下别人写的类似这种命令执行漏洞的java工具,发现其中都会带有cmd.exe /c啊/bin/bash -c 这种。(图就不贴了,大家应该都知道)
于是我也尝试了下
哎,你别说你还真别说 成了
试了试path,发现了用友的绝对路径。
其实直接dir也能看路径,为什么path呢,因为里面有用友启动时候需要使用的jdk,会存到环境变量里。而这种命令执行,有时候很有可能当前目录在C盘或者linux的根目录,如果碰巧有很多文件,就会卡住或者报错。所以path方便一些。这里很巧,dir就是用友的目录
那既然有了路径,就开始写个shell,先测试一下
可行
紧接着无脑直接写,又出了问题。虽然没有报错,但是没写进去
应该是转义的问题
那很简单,我把shell中的特殊符号挑了出来,挨个测试
1.影响系统命令正常执行的用^进行转义
2.影响java语句正常执行的用url编码
一切顺利,接下来调整一下哥斯拉的shell,直接写入
完美,再写个jsp,直接进行连接
一阵信息搜集,自己也没有vps,挂个suo5开冲