文件包含
[SWPUCTF 2021 新生赛]PseudoProtocols
**0x00 **
file_get_contents()
这个函数就会将内容读取出来,然后转变为字符串
0x01 绕过
这个函数有两个方式绕过
php://input
然后在post里面添加内容
I want flag
还有一个方法是data
data://text/plain,I want flag
[ZJCTF 2019]NiZhuanSiWei
**0x00 **
这道题用到的主要使用伪协议
0x01
我们需要先绕过这个,还是伪协议,和上面那一道题是一样的
1 |
|
0x02
根据提示使用伪协议读取useless.php文件内容,由于这个对flag会有过滤,我们就使用base64加密一下
1 |
|
然后解密base64
0x03
反序列化出flag
1 |
|
查看源码
[鹏城杯 2022]简单包含
0x00
主要使用的是php伪协议,然后脏数据绕过
0x01
有waf,读取源码
0x02
看长度是否大于800
构造一个脏数据大于800
[鹤城杯 2021]EasyP
0x00
主要思路:
绕过正则匹配就行了
关键点:
- basename()函数,会忽视非ascii码值,返回上一个
/
的字符 _
绕过可以使用.
和[
新东西:
直接看输出吧
总结一下
$_SERVER[‘PHP_SELF’]
url之后的输出路径
$_SERVER[‘REQUEST_URI’]
输出路径,如果有参数会输出参数
basename
输出最后一个\后面的东西
0x01
现在开始分析
经过分析,发现存在矛盾,但是我们看可以利用basename()
函数,的特性
basename()会忽视非ascii码值
0x02
现在可以知道,我们只需要构建一个含有非ascii码值的就可以了
但是我们会指定路径,所以我们需要在index.php下弄,还有就是绕过show_source可以使用show.source
和show[source
绕过
index.php/utils.php/%88?show[source=
[NISACTF 2022]bingdundun~
0x00
都是冰墩墩的错误
使用的知识点
zip上传之后,使用phar协议进行文件包含
0x01
点击
发现出现了参数提示
又发现了一个隐藏信息
现在基本理解的,就是上传zip然后进行连接
0x02
上传了zip得到了路径
PHP phar:协议对象注入技术介绍 - FreeBuf网络安全行业门户
0x03
红框中是php文件名字
0x04
连接
antsword
flag在根目录
总结
学到了新的php伪协议的用法
[HNCTF 2022 WEEK2]easy_include
这道题比较有意思,学到了
0x00
出现了这个,我开始以为是绕过限制,然后文件包含
但是发现隔离了太多了
发现能包含
0x01
这里暴露了中间件的信息
0x02
尝试日志文件包含
就是apache ngnix 日志文件
日志包含漏洞属于是本地文件包含,同样服务器没有很好的过滤,或者是服务器配置不当导致用户进入了内网,本来常规用户是访问不了这些文件的,但由于发起访问请求的人是服务器本身,也就导致用户任意文件读取
apache服务器日志存放文件位置:/var/log/apache/access.log
nginx服务器日志存放位置:/var/log/nginx/access.log和/var/log/nginx/error.log