博客摘录「 CTF—web题库笔记(难度4)」2023年12月1日

先简单了解一下什么是文件包含:开发人员一般会把重复使用的函数写到单个文件中,当需要使用这个函数时直接调用此文件,而无需再次编写,这种文件调用的过程一般被称为文件包含。那正常来说包含的文件是固定的、写死的就不会存在文件包含漏洞,但是这样的话又不够便捷,所以开发人员为了使代码调用更加灵活,就会将被包含的文件设置为变量,用来进行动态调用。但正是由于这种灵活性,允许用户从客户端提交一个变量值来作为文件包含的变量值,当这个值是段恶意代码时,并且服务端又没有对用户的输入进行一个很好的过滤,就会造成文件包含漏洞。

注:(实现文件包含功能的函数:include、require、include_once、require_once、highlight_file、show_source、file_get_contents、fopen、file、readline。各种函数作用、用法,大家还是百度吧)

本题的php源代码乍一看就是利用filename参数带一段恶意代码进去,然后include函数执行恶意代码进而找到flag。事实也是这样,不过会遇到很多过滤,要想办绕过去。

.伪协议种类
    file:// 访问本地文件系统
    http:// 访问http(s)网址
    ftp:// 访问ftp
    php:// 访问各个输入/输出流
    zlib:// 压缩流
    data:// 数据
    rar:// RAR压缩包
    ogg:// 音频流

php://伪协议用法,例如:php://input,用于执行php代码,(需要post请求提交数据)。
php://filter,用于读取源码,?filename=php://filter/read=convert.base64/resource=/etc/passwd

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值