文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

攻防世界fileinclude题解

2023-09-03 14:47

关注

目录

解题思路

file_get_contents()函数

PHP伪协议

解题思路续


解题思路

 

 

file_get_contents()函数

file_get_contents():

file_get_contents() 把整个文件读入一个字符串中。

该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。

语法:

file_get_contents(path,include_path,context,start,max_length)

参数描述
path必需。规定要读取的文件。
include_path可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 '1'。
context可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。
start可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 中新增的。
max_length可选。规定读取的字节数。该参数是 PHP 5.1 中新增的。

提示:该函数是二进制安全的。(意思是二进制数据(如图像)和字符数据都可以使用此函数写入。)

#main.php:
#test.txtThis is a String.Hello World;

 

PHP伪协议

PHP有很多内置 URL风格的封装协议,这类协议与fopen()、 copy()、 file_exists()和filesize()的文件系统函数所提供的功能类似。

在文件包含漏洞这里,我们便可以利用这些伪协议对文件进行一些相关的操作从而达到我们的目的

常用的伪协议如下:

  • php://filter 读取文件源码

  • php://input 任意代码执行

  • data://text/plain 任意代码执行

  • zip:// 配合文件上传开启后门

php://filter

名称描述
resource=<要过滤的数据流>这个参数是必须的,它指定了你要筛选过滤的数据流
read=<读链的筛选列表>可选。可以设定一个或多个过滤器名称,以管道符(|)分隔
write=<写链的筛选列表>可选。可以设定一个或多个过滤器名称,以管道符(|)分隔
任何没有以read=和write=做前缀的,都会视情况应用于读写链

php://input

data://text/plain

zip://

解题思路续

来源地址:https://blog.csdn.net/henghengzhao_/article/details/127328881

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯