前言
先判断中间件,是否有解析漏洞,字典扫描拿到上传点,或者会员中心,有可能存在文件上传的地方,而后测试绕过/验证,根据实际情况判断是白名单、黑名单还是内容其他的绕过,绕过/验证和中间件的解析漏洞也不行的话就看看CMS是否存在漏洞,然后看看编辑器漏洞有无以及其他漏洞如CVE漏洞。
知识汇总
1. 各个平台解析漏洞讲解
📎web中间件常见漏洞总结.pdf
2. IIS,Apache,Nginx
主流web服务器:Apache、IIS、Nginx
Apache
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。
IIS
IIS(Internet Information Services) 是一个支持HTTP和FTP发布服务的Web服务器。它是由微软开发的web服务器,需要收费,主要用来跑asp.net asp php,只能在windows下运行
Nginx
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
目前apache和nginx好像还没有看到像IIS一样的可视化配置。在windows和linux上,apache和nginx 都是以编辑配置文件的形式来配置。
3. 各个 WEB 编辑器安全讲解
网站后台里面有操作添加文字等类似功能的时候,有些网站会套用第三方的编辑器去对文章、图片、音频等进行相关处理。如果一个网站里面有编辑器的话,那么这个编辑器是什么类型,有没有漏洞,也会成为我们利用的条件
一些网站也可通过扫描获得编辑器信息,在其它地方不能突破时可以利用编辑器的漏洞进行getsell,可以在网上搜索相关编辑器漏洞利用即可。
大部分的编辑器漏洞都是文件上传漏洞
4. https://navisec.it/编辑器漏洞手册/
有的网站中可能嵌入第三方web编辑软件比如:fckeditor、ewebeditor、ckeditor、kineditor等。
一些网站也可通过扫描获得编辑器信息,在其它地方不能突破时可以利用编辑器的漏洞进行getsell,可以在网上搜索相关编辑器漏洞利用即可
涉及资源
https://navisec.it/编辑器漏洞手册/
https://www.jb51.net/softs/75619.html
📎web中间件常见漏洞总结.pdf
链接:百度网盘 请输入提取码 提取码:ywek
演示案例
中间件文件解析-IIS&Apache&Nginx
IIS 6.0- 7.0 文件名 目录名
1、文件名:x.asp;.x.jpg
2、目录名:x.asp/x.jpg
3、IIS7.X与Nginx解析漏洞一致
利用条件:
1.必须是这个版本的中间件
2.上传文件能不能修改上传目录或上传的文件名能增加命名
如果上传的文件名固定的或者目录无法创建,则无法利用。
文件上传的命名方式:
基于本地命名
基于时间命名
基于随机字符命名
Apache 配置安全--vulhub
.htaccess配置文件产生的Apache HTTPD换行解析漏洞(CVE-2017-15715)
《WEB中间件常见漏洞总结.pdf》中即可查看
Vulhub - Docker-Compose file for vulnerability environment
Apache 解析漏洞(未知后缀解析漏洞)
利用条件
文件名需要基于本地上传为准
原理:
在低版本的apache中,若文件后缀x.php.xxx.yyy,在服务器中若此文件.yyy后缀不被解析,则依次向前解析,成功为止。
利用场景:
如果服务器中间件apache为较低版本的话,我们利用文件上传,上传一个不被识别的文件后缀,利用解漏洞规则成功解析该文件,文件中的后门代码就会被触发。
简单演示:
准备两个后门文件,一个正常php后缀,一个php.xxx后缀
成功解析:
Apache 换行解析-vulhub (%0a截断,黑名单绕过)
Vulhub - Docker-Compose file for vulnerability environment
利用条件:
1.是这个中间件
2.黑名单验证(在黑名单的后缀不让上传 php jsp等)
php%0a绕过黑名单
白名单可能不行(在白名单里面才可以上传 比如jpg png gif等)
1.jpg.php%0a(没考虑最后一个点为后缀,这个白名单就可以)
上传一个名为1.php的文件,被拦截:
在1.php后面插入一个\x0A(注意,不能是\x0D\x0A,只能是一个\x0A),不再拦截:
访问刚才上传的/1.php%0a,发现能够成功解析,但这个文件不是php后缀,说明目标存在解析漏洞:
Nginx 解析漏洞-vulhub
Vulhub - Docker-Compose file for vulnerability environment
Nginx 文件名逻辑-vulhub(CVE-2013-4547)
影响版本:
Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7
漏洞原理
这个漏洞其实和代码执行没有太大关系,其主要原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。
我们只需要上传一个空格结尾的文件,即可使PHP解析。
漏洞复现
启动靶场环境:
docker-compose up -d
启动后访问8080端口可看到一个上传界面
图片马
这个环境是黑名单验证,我们无法上传php后缀的文件,需要利用CVE-2013-4547。我们上传一个“webshell.gif ”,注意后面的空格:
访问http://your-ip:8080/uploadfiles/webshell.gif / .php,即可发现PHP已被解析:
2. 几种常见 WEB 编辑器简要演示
(1)Fckeditor exp 利用
fckeditor的构件组成
但在实际情况下web编辑器是这样的
(2)ueditor 漏洞利用
UEditor .Net版本任意文件上传漏洞复现总结 - 知乎
4. 贴近实际应用下的以上知识点演示
当我们拿到一个网站可通过扫描或手动查找是否有文件上传的地方,比如会员中心等地方。
也可通过数据包或指纹识别是何种中间件,如是低版本可以利用一些解析漏洞上传文件,进行黑白名单绕过测试。
再者知道是何种CMS的话可以利用CMS的漏洞。
一些网站使用第三方的编辑器,可以寻找编辑器的漏洞进行突破。
再者也可以找一些CVE编号漏洞进行利用。