文件上传
文件上传的控制点:
Content-Length:上传内容大小 MAX_FILE_SIZE:上传内容最大长度 filename:文件名 Content-Type:文件类型 上传路径等
挖掘思路:
全局搜索上传函数,寻找上传点
案例:
upload.html
upload.php
案例: file文件夹下有1.txt,上一级有2.txt
绕过方式:
1、进行URL编码 .->%2e ->%2f /->%5c 2、二次URL编码 .->%252e ->%252f /->%255c 3、16位Unicode编码 .->%u002e ->%u2215 /->%u2216
在引入文件时参数名可控导致文件泄露甚至代码注入
相关函数:
include、include_once、require、require_once
本地包含
利用方式:
远程包含
allow_url_include = On 包含的文件不能为.php
利用方式:
%00截断 路径长度截断 ?伪截断 php://输入输出流:
php://filter/read=convert.base64-encode/resource=1.txt
任意文件读取、任意文件删除
任意文件读取
通过提交精心设计的恶意数据可以访问任意文件或者写入任意内容。
挖掘思路:
allow_url_fopen = On
可回溯
相关函数:
fopen、file_get_contents、fread、fgets、fgetss、file、fpassthru、parse_ini_file、readfile
任意文件删除