WEB安全漏洞中,与文件操作相关的漏洞类型就不少,在大部分的渗透测试过程中,上传文件(大、小马)是必不可少的一个流程,然而各种各样的防火墙拦截了文件上传,遂整理文件操作相关漏洞的各种姿势,如有不妥之处,还望各位斧正。
安全测试中快速获得WEBSHELL
最近在代码审计某项目的时候发现了一个文件上传漏洞,但是在生产环境测试的过程中,各种各样的“狗”和“盾”都给拦截了,徒有漏洞,没法儿利用,所以整理整理,杀狗破盾,冲冲冲!
0x01 寻找文件操作相关漏洞
文件操作相关的漏洞主要有:任意文件上传、任意文件下载、任意文件删除、任意文件读取四大类(简单理解:增删改查)
1.1 文件上传:
文件上传功能在大多数的 web
应用中都存在,比如用户头像上传,文章内容的图片、视频、音频、附件上传,一些 CMS
系统上传模版文件,数据库备份文件,插件文件等地方。
而文件上传,在大部分的渗透测试进一步利用漏洞的时候是比较关键的一步。
一般来说,对于那些未校验文件类型的上传操作的,可以直接上传我们的小马、大马文件。
有校验文件后缀、类型的,如果是黑名单的方式,比如某 WAF
设置了不允许上传文件后缀为php,asp,apsx
的文件,根据PHP
的一些可解析后缀比如:php3
、php4
、php5
、phtml
等等
黑名单:
代码语言:javascript复制array(
".php",".php5",".php4",".php3",".php2",".php1",
".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",
".pHp2",".pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",
".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",
".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",
".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",
".aShx",".aSmx",".cEr",".sWf",".swf"
);
1.2 文件删除:
任意文件删除漏洞,一般来讲删除文件是一个比较危险的操作,都是管理员才具有的权限,所以对于文件的删除必须有权限的控制,当然如果没有做好CSRF防护,同样是可以以管理员权限进行操作。
任意文件删除漏洞一般存在于:用户删除文章的附件(图片、压缩包等),管理员删除文章(同时关联删除文章附件),管理员删除插件,删除模版,删除数据库备份文件等操作的地方。
1.3 文件修改:
文件修改其实比较少见,其实现的一般思路是删除原文件,替换成新上传的文件。
修改文件的操作,在后台的操作还比较常见,比如写后台修改web应用的配置文件config.php
(配置网站标题、关键词、数据库等等),常见于安装CMS系统时候的引导操作流程,所以会经常去寻找类似于install.php
等的文件,检查是否存在重装漏洞。
1.4 读取/下载文件:
在一个web应用中,对于网站有风险的文件下载操作的是用户可以读取或下载任意文件。
常见存在此漏洞的地方比如:网站程序备份文件、数据库备份文件,文件备份(index.php.bak
),.git
,VM
文件修改的时候异常退出的而生成的 .swp
备份文件等
0x02 如何突破上传文件
实际的环境中,很少有直接可以任意上传文件的漏洞(
常见于前端限制
),小东根据个人经验整理出主要的几类突破文件上传拦截的方法:
操作 | 说明 |
---|---|
前端禁用JS | 前端限制,禁用JS,去除input标签的accept属性 |
修改文件后缀 | 抓包工具,修改文件后缀为黑名单之外的后缀 |
修改文件后缀 | 修改文件后缀为index.jpg.php |
修改文件后缀 |