网站漏洞检测 解析绕过上传漏洞

在日常对客户网站进行渗透测试服务的时候 , 我们经常遇到客户网站,App存在文件上传功能 , 程序员在设计开发代码的过程中都会对上传的文件类型 , 格式 , 后缀名做安全效验与过滤判断 , 工程师在对文件上传漏洞进行测试的时候 , 往往发现的网站漏洞都是由于服务器的环境漏洞导致的 , 像IIS , Apache,Nginx环境 , 都存在着可以导致任意文件上传的漏洞 。

网站漏洞检测 解析绕过上传漏洞

文章插图
关于导致文件上传漏洞的产生以及测试 , 我们来详细的分析一下:
IIS解析漏洞导致的任意文件上传
首先比较常见的是客户网站使用的IIS环境来搭建的 , 一般是IIS+php+MySQL数据库组合 , 或者IIS+aspx+sql2005数据库 , IIS存在解析漏洞 , 当创建文件名为.php的时候 , 在这个目录下的所有文件 , 或者代码 , 都会以PHP脚本的权限去运行 , 比如其中一个客户网站 , 可以将上传的目录改为1.php , 那么我们上传的jpg文件到这个目录下 , 访问的网址是域名/1.php/1.jpg从浏览器里访问这个地址 , 就会是php脚本的权限运行 。当上传网站木马webshell过去 , 就会直接拿到网站的管理权限 。存在IIS解析漏洞的版本是5.0-6.0版本 。
nginx解析漏洞导致的任意文件上传
nginx是静态访问 , 以及大并发 , 能够承载多人访问 , 目前很多网站都在使用的一种服务器环境 , 简单来讲就是HTTP访问的代理 , 高速稳定 , 深受很多网站运营者的喜欢 , 在nginx最低版本中存在解析漏洞 , 可以导致运行PHP脚本文件 , 漏洞产生的原因是由于php.ini配置文件与nginx配合解析的时候 , 将默认的后缀名认为是最重的文件名 , 导致可以修改后缀名来执行PHP文件 。我们在渗透测试中发现客户网站开启nginx以及fast-cgi模式后 , 就会很容易的上传网站木马到网站目录中 , 我们将jpg图片文件插入一句话木马代码 , 并上传到网站的图片目录中 。
我们在访问这个图片的时候 , 直接在后面输入/1.php , 就会导致图片文件以php脚本权限来运行了 。如下图所示:
【网站漏洞检测 解析绕过上传漏洞】 
网站漏洞检测 解析绕过上传漏洞

文章插图
apache解析漏洞导致的任意文件上传
apache也是目前使用较多的一个服务器环境 , 尤其php网站使用的较多 , 因为稳定 , 快速 , 易于PHP访问 , 可以将第三方的一些开发语言编译到网站中 , apache也是存在漏洞的 , 尤其在apache1.0-2.0版本中 , 后缀名判断这里没有做详细的规定 , 导致可以绕过apache安全机制 , 上传恶意的文件名 。默认是允许多个后缀名进行解析的 , 如果命名的后缀名不被apache认可解析 , 就会向前寻找后缀名 , 直到后缀名是apache认可的 , 就会直接解析成功 。该文件上传漏洞使用的条件是需要开启module模式 , 不是这个模式的上传不了 。我们SINE安全在对客户网站进行渗透测试的时候 , 首先会改后缀名为apache不认可的 , 然后POST上传过去 , 直接运行php脚本 。如下图所示:
 
网站漏洞检测 解析绕过上传漏洞

文章插图
总的来说导致任意文件上传漏洞的发生也存在于服务器环境中 , 那么在渗透测试过程中该如何的修复漏洞呢?将IIS版本升级到7.0以上 , Nginx版本也升级到最新版本 , 包括apache版本升级到2.4以上 , 在上传功能代码里对其进行文件格式的判断 , 限制目录的创建 , 可杜绝以上的问题的发生 。




    推荐阅读