虽然学习了php的include文件包含基础,但是在实际的ctf题目中还是没有能够很好的运用,因此在本文写下在ctf中会用到的绕过方式
【include文件包含伪协议】部分内容来源于https://www.csdn.net/tags/NtzacgzsODM1MDAtYmxvZwO0O0OO0O0O.html
首先是ctf-show萌新web题目14
文章图片
题目过滤掉了很多元素,但是题目又提示了我们flag就在config.php文件里
看了很多大佬的做法,他们大部分是运用include文件包含来完成的
文章图片
通过大佬的解释,这payload的理解大概就是利用include传入一个变量,但系统不会去检查传入的这个变量,同时?>是用来闭合前面的语句从而进行实现运行
百度了一手,php伪代码构造payload:
?file=php://filter/read=convert.base64-encode/resource=flag.php
【file://协议】
file://:用于访问本地文件系统,因此后面需要跟上文件的绝对路径和文件名
file://协议在双off情况下也可以正常使用
allow_url_fopen:off/on
allow_url_include:off/on
【php://协议】
php://访问各个输入和输出流(l/O streams),在ctf中经常使用的是php://filter和php://input,而php://filter用于读取源码,php://input用于执行php代码
!!php://filter读取源代码并进行base64编码输出,不然会直接当做php代码执行就会看不到源代码内容!
推荐阅读
- 22.4.3 php语言文件包含基础
- 22.4.2 php语言循环结构 2
- 22.3.27学习日记(php语法基础)
- php实现抖音开放平台账号授权获取码code、获取access_token
- 抖音|抖音开放平台开发记录
- 服务器|Arm、Intel 和 AMD 服务器 CPU未来2年市场发展分析
- webpack|采用 vue+webpack 构建的单页应用——私人博客 MintloG 诞生记
- Python|Python和PHP有什么区别
- php|商家入驻商城 多商户商城 宝塔安装搭建教程 说明 小程序、h5、pc端