传统文件上传:上传至服务器本身硬盘。
云存储:借助云存储oss对象存储(只能被访问,不可解析)
Oss云存储
Access key与Access ID:
有了这两个东西之后就可以操作云存储,可以向里面发数据了。
这玩意儿泄露的话,就可以用oss浏览器登录,获取文件。
文件包含
如果我访问。Upload.HTML会出现如下页面↓
如果我访问Upload.PHP会显示如下页面↓
如果我想把功能全写在一起,就可以来一个文件包含,在PHP中写include Upload.HTML
然后他就会把HTML执行。
相当于只访问一个文件就可以实行两个功能。
(包含过来可以调用运行,方便开发,一个文件,当几个文件使)
比如没有文件包含的话,我要调用文件的话那就必须全部复制粘贴过来,现在直接一行代码解决。
*安全问题:这东西包含谁执行谁,包含的文件受我们的控制,所以有漏洞,不可太自由。
*什么函数造成了什么漏洞,以及用户可以控制的值,架构的特性,函数的特性。
这段是PHP代码(文件为 filemanage.php ),用于处理文件删除和文件下载操作:
- 当操作标识 $action 为 'del' 时:执行 unlink($file) ,作用是删除变量 $file 所指定的文件。
- 当操作标识 $action 为 'down' 时:通过设置 HTTP 响应头(指定内容为二进制流、强制浏览器以“附件”形式下载、告知文件大小),再用 readfile($file) 读取并输出文件内容,最终实现文件下载功能(不过代码里 filename="" 是空的,实际使用时需要填入具体文件名,比如原文件的名字,这样下载时才会显示正确的文件名)。
*所以是不是我下载的时候把数据包改成别的路径,它就会下载别的文件(如果没有黑名单白名单的话)
这些东西如果控制不当的话,就容易跨目录下载跨目录翻阅,跨目录删除,跨目录编辑。等等。
任意文件漏洞。
System PHP中调用系统文件。
因为这是执行命令行的命令,命令行他执行的是del $file中传的东西,Del sb.php ⅡPing 127点0.0.1,他就会同时执行两个命令。
还有这个检测检测这个是不是目录,如果没有做过滤的,
如果代码中没有 eval 、 include / require 等执行PHP代码的逻辑,仅通过 $path 传递恶意内容,是无法直接注入PHP命令的。
原因在于:当前代码的核心是文件管理操作(判断文件/目录、提取文件名、遍历目录等),没有“执行动态PHP代码”的逻辑(比如用 eval 解析字符串为代码,或用 include 包含恶意文件)。
只有当代码中存在 eval($_GET['path']) 、 include($path) 这类“执行/包含动态代码”的逻辑,且 $path 未做安全过滤时,才可能被注入恶意PHP命令。而从当前代码看,没有这类风险逻辑。
图片中包含的实体信息是网站“DNSLog.cn”,它是一个常用于网络安全领域的平台,主要功能包括提供DNS查询记录查看等,可辅助进行漏洞检测等相关的测试与监控工作。