您当前的位置:首页 > 计算机 > 安全防护

文件上传漏洞思路总结

时间:10-11来源:作者:点击数:

前言

本文只是做一些总结性的内容,本文中提到的一些操作,均在我得另外两篇文章中有所提及,可以结合进行参考:

文件上传漏洞(全网最详细)

中间件解析漏洞总结

构成文件上传漏洞的满足条件

上传的后门文件,需要能被脚本语言解析执行。

  • 说明一:对方服务器运行的PHP环境,你不能上传一个JAVA的后门代码。
  • 说明二:你上传文件的目录可以被脚本语言解析执行,如果你上传的目录没有执行权限也不行
  • 说明三:一般文件上传后会返回你一个地址,如果无妨链接到也不能构成文件上传漏洞。

还有例外情况,非脚本文件也能被成功解析。比如:上传了一个图片🐎,如果对方中间件上存在一些漏洞的话,配合这些漏洞可以实现图片文件按照脚本文件解析。

常见的检测面

针对上传的校验,大概有以下几处:

  1. 前端js校验
  2. 数据包 content-type字段校验,即文件类型
  3. 文件后缀校验
  4. 文件上传路径校验,一般情况下我们很少能控制文件上传的路径
  5. 文件内容校验

文件上传绕过检测思路

前端js校验:直接修改前端代码

后端检测Content-Type:直接抓包修改为 image/png or image/jpg

后端校验后缀:nginx中间件就结合.user.ini文件 apache就配合.htaccess文件

文件内容校验:

过滤关键字php:payload <?=eval($_POST[x]);?>

过滤关键字 [] : []=={}

过滤关键字 ; payload:<?=system("操作系统命令")?>

过滤关键字 () 使用反引号执行命令 paylaod:<?=`tac ../fl*`?>

如果以上都被过滤了,就要考虑远程文件包含,还有条件竞争

其它别的:

服务器可能会对上传的图片进行二次渲染,我们需要对上传的图片实现进行处理,防止payload被处理掉

实际测试思路

首先,尝试上传脚本文件,并且尝试绕过,二分思想测试检测点

如果针对文件的的检测很完善的话,还有两条思路,目的使非脚本文件解析为脚本文件

  1. 看看中间件上是否存在一些解析漏洞,进行尝试
  2. nginx尝试.user.ini文件进行包含,apache的话尝试.htaccess尝试进行包含
  3. 尝试包含日志文件
  4. 尝试条件竞争
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门