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

漏洞介绍

        文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和“文件上传”本身是没有问题,有问题的是文件上传后,服有效的,务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果

漏洞危害

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

        比如。上传一个webshell,就是我们说的一个恶意文件

漏洞条件

        文件可上传

        知道文件上传的路径  (文件上传后的路径)

        上传文件可以被访问

        上传文件可以被解析执行  (可以配合文件包含漏洞)

文件上传可控点

        Content-Length 即上传内容大小

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

        filename   就是上传文件名

        Content-Type  即上传文件类型

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

        有可能存在请求包的可控点,还有上传路径,

挖掘思路

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

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

上传函数都有,

        找到上传代码,看相应代码,是怎么执行的,能不能绕过

upload_tmp_dir 是  本地上传临时保存的路径

写一个html上传表单

写一个处理文件

 

文件上传绕过 - 客户端

        1.用firebug将form表单中的onsubmit事件删除   ---js代码禁用

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

任何客户端都是不安全的

       

文件上传绕过 - 服务端

        1.黑白名单过滤

        2.修改MIME类型

        3.截断上传攻击

        4.    .htaccess文件攻击

        5.目录验证  文件上传,允许用户放到指定目录,目录存在 将写入的文件放到目录iis6.0可以

修复方案

        检测文件上传内容

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

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

        限制文件大小

        更改临时文件夹的路径

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

        隐藏文件路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
科威PHP防火墙简介: DDos拦截 提供应用层的DDos拦截,阻止访问过于频繁的IP,可对其IP进行锁定,也可以要求其输入验证码后才能继续访问。 SQL注入拦截 对用户请求的GET、POST、COOKIE等参数进行检测,可以检测出其中的非法字符,并进行过滤或拦截,防止对网站造成侵害。 文件上传过滤 可对用户上传文件类型进行限定,也可对其进行扫描,检测出其中的非法字符或程序,阻止其上传,可以查杀各种嵌入型木马程序。 图形化显示 将监测到的非法攻击以图形化的方式展现给网站管理者,可现实攻击类型比例、攻击趋势等,供网站管理者更好的评估风险等级。 网站备份 可对网站的文件和数据库进行备份,在需要时随时恢复,防止网站入侵造成文件或数据丢失、破坏。 木马扫描 可对整站文件进行扫描,检测其中的非法字符、非法代码、非法程序片段,可以查杀各种嵌入型木马程序。 文件指纹检测 预先对网站文件指纹进行采集,日后可通过与预先检测的指纹对比,发现被修改的文件,可有效防止文件被非法篡改。 快速部署 后台集成一键部署代码功能,轻松实现保护,支持Zend、ionCube、SourceCop等方式加密的程序,可随时部署或取消部署。 详尽日志 系统具有完整的日志记录功能,将所有攻击、非法访问、非法上传计入后台,供日后审计追查和修补网站漏洞。      相关阅读 同类推荐:站长用源码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值