文件包含

[SWPUCTF 2021 新生赛]PseudoProtocols

**0x00 **

image-20240105221129539

file_get_contents()

这个函数就会将内容读取出来,然后转变为字符串

0x01 绕过

这个函数有两个方式绕过

php://input

然后在post里面添加内容

I want flag

还有一个方法是data

data://text/plain,I want flag

[ZJCTF 2019]NiZhuanSiWei

**0x00 **

这道题用到的主要使用伪协议

0x01

image-20240107095634950

我们需要先绕过这个,还是伪协议,和上面那一道题是一样的

image-20240107095812819

1
data://text/plain

image-20240107095853088

0x02

image-20240107095925922

根据提示使用伪协议读取useless.php文件内容,由于这个对flag会有过滤,我们就使用base64加密一下

image-20240107101022664

1
text=data://text/plain,welcome to the zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php

然后解密base64

image-20240107101126165

0x03

反序列化出flag

1
O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

z

查看源码

image-20240107101409393

[鹏城杯 2022]简单包含

0x00

主要使用的是php伪协议,然后脏数据绕过

image-20240110110712603

0x01

image-20240110110904685

有waf,读取源码

image-20240110111053522

0x02

看长度是否大于800

构造一个脏数据大于800

image-20240110111555228

image-20240110111609419

[鹤城杯 2021]EasyP

0x00

主要思路:

绕过正则匹配就行了

关键点:

  1. basename()函数,会忽视非ascii码值,返回上一个/的字符
  2. _绕过可以使用.[

新东西:

直接看输出吧

image-20240110134837890

总结一下

  1. $_SERVER[‘PHP_SELF’]

    url之后的输出路径

  2. $_SERVER[‘REQUEST_URI’]

    输出路径,如果有参数会输出参数

  3. basename

    输出最后一个\后面的东西

    PHP basename() 函数 | 菜鸟教程 (runoob.com)

0x01

现在开始分析

image-20240110140903859

经过分析,发现存在矛盾,但是我们看可以利用basename()函数,的特性

basename()会忽视非ascii码值

image-20240110141110374

0x02

现在可以知道,我们只需要构建一个含有非ascii码值的就可以了

但是我们会指定路径,所以我们需要在index.php下弄,还有就是绕过show_source可以使用show.sourceshow[source绕过

image-20240110141402640

index.php/utils.php/%88?show[source=

[NISACTF 2022]bingdundun~

0x00

都是冰墩墩的错误

使用的知识点

  1. zip上传之后,使用phar协议进行文件包含

    PHP phar:协议对象注入技术介绍 - FreeBuf网络安全行业门户

0x01

image-20240124182307436

点击

image-20240124182332441

发现出现了参数提示

image-20240124182527859

又发现了一个隐藏信息

现在基本理解的,就是上传zip然后进行连接

0x02

image-20240124182942056

上传了zip得到了路径

PHP phar:协议对象注入技术介绍 - FreeBuf网络安全行业门户

0x03

image-20240124183233707

红框中是php文件名字

0x04

连接

antsword

image-20240124183339835

flag在根目录

总结

学到了新的php伪协议的用法

[HNCTF 2022 WEEK2]easy_include

这道题比较有意思,学到了

0x00

image-20240212215957836

出现了这个,我开始以为是绕过限制,然后文件包含

但是发现隔离了太多了

image-20240212220049077

发现能包含

0x01

image-20240212220440107

这里暴露了中间件的信息

0x02

尝试日志文件包含

就是apache ngnix 日志文件

日志包含漏洞属于是本地文件包含,同样服务器没有很好的过滤,或者是服务器配置不当导致用户进入了内网,本来常规用户是访问不了这些文件的,但由于发起访问请求的人是服务器本身,也就导致用户任意文件读取

apache服务器日志存放文件位置:/var/log/apache/access.log

nginx服务器日志存放位置:/var/log/nginx/access.log和/var/log/nginx/error.log

image-20240212222544856


文件包含
https://tsy244.github.io/2024/01/05/CTF刷题记录/WEB/文件包含/
Author
August Rosenberg
Posted on
January 5, 2024
Licensed under