首页
学习
活动
专区
圈层
工具
发布

网络安全自学篇-PHP代码审计(七)

文件上传

原理:攻击者上传的脚本文件被web应用解析并执行,通常是一个webshell,文件上传本身没问题,主要在于服务器怎么去处理。

文件上传的控制点:

Content-Length:上传内容大小 MAX_FILE_SIZE:上传内容最大长度 filename:文件名 Content-Type:文件类型 上传路径等

挖掘思路:

全局搜索上传函数,寻找上传点

案例:

upload.html

upload.php

目录遍历

攻击者能够在web应用所在目录以外文件夹上任意存取文件夹、执行命令或查找数据

案例: 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

任意文件删除

下一篇
举报
领券