PHP代码审计之文件上传漏洞

举报
亿人安全 发表于 2023/05/29 17:16:31 2023/05/29
【摘要】 漏洞介绍:文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传”本身是没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果漏洞危害:上传文件的时,服务器端脚本语言未对上传的文件进行严格的验证和过滤,就有可能上传恶意的文件,从而控制整个网站,甚至是服务器...

漏洞介绍:

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和

有效的,“文件上传”本身是没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果

漏洞危害:

上传文件的时,服务器端脚本语言未对上传的文件进行严格的验证和过滤,就有可能上传恶意的文件,从而控制整个网站,甚至是服务器。

漏洞条件:

• 文件可上传

• 知道文件上传的路径

• 上传文件可以被访问

• 上传文件可以被执行

文件上传可控点

• Content-Length,即上传内容大小

• MAX_FILE_SIZE,即上传内容的最大长度

• filename,即上传文件名

• Content-Type,即上传文件类型

• 请求包中的乱码字段,即是所上传文件的内容

• 有可能存在请求包中的可控点还有上传路径,只是上面的示例中没有出现

挖掘思路:

• 上传点都调用同一个上传类,直接全局搜索上传函数

• 黑盒寻找上传点,代码定位

代码案例:

• name:客户端的原始上传文件名称

• Type:上传文件的MIME类型

• Tmp_name:服务器端用来保存上传文件的临时文件路径

• Error:上传文件时的错误信息

• Size:上传文件的大小,单位是

文件上传绕过-客户端

• 1.用firebug将form表单中的onsubmit事件删除

• 2.上传木马文件,Burp拦截数据包,修改扩展名

文件上传绕过-服务端

• 1.黑白名单过滤

• 2.修改MIME类型

• 3.截断上传攻击

• 4. .htaccess文件攻击

• 5.目录验证

修复方案:

• 检测文件上传内容

– 黑白名单验证,检测文件扩展名是否合法

– MIME验证,检测文件的MIME类型

• 限制文件大小

• 更改临时文件夹的路径

• 读取上传文件的绝对路径 与文件名称

• 隐藏文件路径

目录穿越及文件

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。