原因
在对某网站浸透过程中,经过报错页面发现网站架构为ThinkPHP 5.0.23,存在method RCE破绽。但是,运用常规payload提示
__construct
关键字被禁用,因而payload无法生效。但是这个破绽的关键点不在于__construct
办法,而是Request
类的method
办法能够让我们调用类中的恣意办法,因而,开端寻觅另一条应用链。
剖析
- 破绽应用点
Request
类的method
办法能够让我们调用类中的恣意办法
- 剖析
- 该类为ThinkPHP的恳求类,主要寄存恳求中的各种信息,没有办法直接执行代码,但是经过
filter
链能够间接执行代码
- 该类为ThinkPHP的恳求类,主要寄存恳求中的各种信息,没有办法直接执行代码,但是经过
- 难点:
- 之前的
payload
都是经过__construct
函数覆写恳求中的参数信息以及filter
链,从而控制调用的函数以及参数 filter
函数仅能注册filter
链,无法覆写参数
- 之前的
- 思绪
- 经过
filter
链将无法控制的参数引导到能够控制的参数
- 经过
结构
- 由于官网不再提供5.0.23版本的下载,此处运用5.0.22完好版做实验,下载地址
- PHP版本:7.3.4
开启debug形式
0. filter链
- 开启debug形式下,进入我们
filter
链的第一个参数为server[REQUEST_METHOD]
,即字符串POST
- 调用堆栈如图所示
1. phpinfo
phpinfo
函数能够承受一个整数作为参数,但是,当传入的参数为0
的时分,不会输出任何信息,因而intval
函数无法运用
- 需求寻觅一个函数能够承受字符串作为参数,并可以返回一个不为0的整数,以供后续
phpinfo
运用 - 此处运用
error_report
函数,原型如下:
- 因而结构POC如下
post : 0=error_reporting&1=phpinfo&_method=filter
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
© 版权声明
本站网络名称:
孤勇者社区
本站永久网址:
https://www.gyzsq.com
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ324470778删除处理。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
喜欢就支持一下吧
相关推荐
评论 共1条
![头像](/wp-content/themes/zibll/img/avatar-default.png)
欢迎您留下宝贵的见解!
- 最新
- 最热
只看作者