CTF-文件包含
url的小tips :https://a.com/1.txt?a.php 访问的依然还是1.txt,问号后面还是不顶用。
1. 伪协议
file:// 访问本地文件系统
http://
ftp:// 访问 ftp
php:// 访问各个输入/输出流
php://filter
zlib:// 压缩流
data:// 数据(RFC 2397)
glob:// 查找匹配的文件路径模式
phar:// php归档 反序列化的情况
http://url/index.php?url=phar://upload/1.zip/phpinfo.php
zip://
zlib:// bzip2:// zip:// zlib://- 2://–zip:// –压缩流
可选项:
compress.zlib://file.gz
compress.bzip2://file.bz2
zip://archive.zip#dir/file.txt
http://url/index.php?url=zip://upload/1.zip%23phpinfo.php
压缩后 修改zip为 jpg格式,然后继续伪造协议解析
ssh2:// secure shell2
rar:// -RAR
ogg:// 音频流
expect:// 处理交互式的流
包含日志文件:
session包含:
文件上传:
xxd 1.jpg 用十六进制打开 1.jpg
getimage头像用文件头来绕过,
竞争文件上传
session包含
上次是session_start()才会生成一个session,
具体
场景:
session.upload_process.enabled
session相关的问题
phpinfo中,open_basedir 用户可以访问的目录
查看session中 存放的目录 发现tmp地下还存在一个文件夹不知道,包含phpinfo文件才发现路径,然后使用../../目录不一致。
远古魔法: magic_quotes_gpc=off,php小于5.3.4有效
路径与长度截断:
./和. 小于5.2.8可以成功,linux文件名长度大于4096 windows需要大于256
lfi_phpinfo.py
上传就会生成一个临时的文件,会话结束就会删除临时文件
php自包含
如何让上传不会删除文件?就需要自包含
自包含让php停止 就不会删除了,就可以直接进行包含
自包含的页面是 出现自包含的url,上传后会再tmp目录,然后爆破或者使用编辑器爆目录 的漏洞,然后再使用包含实现getshell
www.jianshu.com/p/dfd049924258
配合包含 且路径可以跳到tmp目录。