一些关于文件上传漏洞的学习

文件上传漏洞成因
  1. 服务器配置不当
    • IIS webdav PUT漏洞
    • tomcat PUT上传漏洞
  2. 开源编辑器上传漏洞
  3. 本地文件上传限制被绕过
  4. 过滤不严格被绕过
  5. 文件解析漏洞导致文件执行
  6. 文件路径截断
文件上传流程
用户
数据提交
服务器接收
转储临时文件
正式文件
用户
js检测
文件检测和过滤
二次渲染
文件解析漏洞
IIS
  1. asp
    • asp;.jpg会忽略后门的.jpg直接当作asp执行;分号后面的直接忽略
    • IIS6还支持asa、cer、cdx
apache
  1. 从右到左解析
    • xxx.php.rar会解析为xxx.php
  2. 换行解析
    • 2.4.0-2.4.29中如果文件名最后一个字符为换行符x0a,apache会直接忽略
    • 该文件会被当作php解析,可以绕过黑名单
    • $_POST[‘name’]获取的会保留x0a,但$_FILE[‘file’][‘name’]会自动过滤掉x0a
nginx解析漏洞
  1. xx.jpg/.php可以解析为.php文件
攻击方式
  1. 绕过js检测
  • 插件关闭js代码或直接在bp上传
  1. 文件名黑名单后缀绕过
  • .phtml、.php1
  1. 文件类型绕过
  • 如果存在content-type校验,将content-type值改为所需值但上传文件内容不变
  1. PHP获取图片上传
  • cat a.png b.php > a.php
  • 此时的a.php拥有正常png图片长宽高等属性可以被getimagesize()函数,且可以被正常解析为php文件
  1. 截断绕过
  • 要求magic_qutoes_gpc为off
  • 当php版本小于5.3.4时%00代表结束符,会把后面的所有字符删除
    当上传文件名为1.php%00.jpg时,php会将%00和后面的.jpg全部删除
  1. 条件竞争
  • 一些网站会先接收文件再校验文件内容
  • 上传成功后立刻连接木马,木马本身生成新的木马
  • 连接新生成的木马
<?php
fputs (fopen ('../shell.php', 'w')'<?php @eval ($_POST[a]) ?>') ;
?>
  1. waf绕过
  • 在木马文件中添加大量脏数据,部分waf对文件大小限制,如果过大则不检测
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值