PHP代码审计基础:文件上传漏洞

漏洞原理

文件上传漏洞一些web应用程序中允许上传图片,文本或者其他资源到指定的位置。 文件上传漏洞就是利用网页代码中的文件上传路径变量过滤不严将可执行的文件上传到一个到服务器中,再通过URL去访问以执行恶意代码。

危害

上传漏洞与SQL注入或 XSS相比 , 其风险更大 , 如果 Web应用程序存在上传漏洞 , 攻击者上传的文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。如果上传的文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为。如果上传的文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。如果上传的文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。甚至攻击者可以直接上传一个webshell到服务器上 完全控制系统或致使系统瘫痪。

漏洞条件

  • 文件可以上传
  • 能获取文件上传后的路径
  • 上传文件可以被访问
  • 上传文件可以被执行

文件上传的可控点

  • Content-Length,即上传内容大小
  • MAX_FILE_SIZE,即上传内容的最大长度
  • filename,即上传文件名
  • Content-Type,即上传文件类型
  • 请求包中的乱码字段,即是所上传文件的内容
  • 有可能存在请求包中的可控点还有上传路径,只是上面的示例中没有出现

挖掘思路

  • 上传点都调用同一个上传类
  • 黑盒寻找上传点,代码定位

搭建环境

这里搭建上传页面,一些函数就不再做过多介绍,之前博客里的这篇文章详解PHP的文件操作里面有详细介绍哦~

upload.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8&
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值