一、 常见web中间件及其破绽概述
(一) IIS
1、PUT破绽
2、短文件名猜解
3、远程代码执行
4、解析破绽
(二) Apache
1、解析破绽
2、目录遍历
(三) Nginx
1、文件解析
2、目录遍历
3、CRLF注入
4、目录穿越
(四)Tomcat
1、远程代码执行
2、war后门文件部署
(五)jBoss
1、反序列化破绽
2、war后门文件部署
(六)WebLogic
1、反序列化破绽
2、SSRF
3、恣意文件上传
4、war后门文件部署
(七)其它中间件相关破绽
1、FastCGI未受权访问、恣意命令执行
2、PHPCGI远程代码执行
二、 IIS破绽剖析
(一) IIS简介
IIS是Internet Information Services的缩写,意为互联网信息效劳,是由微软公司提供的基于运转Microsoft Windows的互联网根本效劳。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一同发行,但在Windows XP Home版本上并没有IIS。IIS是一种Web(网页)效劳组件,其中包括Web效劳器、FTP效劳器、NNTP效劳器和SMTP效劳器,分别用于网页阅读、文件传输、新闻效劳和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
IIS的平安脆弱性曾长时间被业内诟病,一旦IIS呈现远程执行破绽要挟将会十分严重。远程执行代码破绽存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确剖析经特殊设计的 HTTP 恳求时会招致此破绽。胜利应用此破绽的攻击者能够在系统帐户的上下文中执行恣意代码,能够招致IIS效劳器所在机器蓝屏或读取其内存中的秘密数据
(二) PUT破绽
1、破绽引见及成因
IIS Server 在 Web 效劳扩展中开启了 WebDAV ,配置了能够写入的权限,形成恣意文件上传。
版本: IIS6.0
2、破绽复现
1) 开启WebDAV 和写权限
2) 应用burp测试
抓包,将GET恳求改为OPTIONS
3)应用工具停止测试
胜利上传,再上传一句话木马,然后用菜刀衔接,getshell
3、破绽修复
关闭WebDAV 和写权限
(二)短文件名猜解
1、破绽引见及成因
IIS的短文件名机制,能够暴力猜解短文件名,访问结构的某个存在的短文件名,会返回404,访问结构的某个不存在的短文件名,返回400。
2、破绽复现
1)、在网站根目录下添加aaaaaaaaaa.html文件
3) 停止猜解
3、破绽修复
修复办法:
1)晋级.net framework
2)修正注册表禁用短文件名功用
快捷键Win+R翻开命令窗口,输入regedit翻开注册表窗口,找到途径:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem,将其中的 NtfsDisable8dot3NameCreation这一项的值设为 1,1代表不创立短文件名格式,修正完成后,需求重启系统生效
3)CMD关闭NTFS 8.3文件格式的支持
4)将web文件夹的内容拷贝到另一个位置,如c:www到d:w,然后删除原文件夹,再重命名d:w到c:www。
修复后:
4、局限性
1) 此破绽只能肯定前6个字符,假如后面的字符太长、包含特殊字符,很难猜解;
2) 假如文件名自身太短(无短文件名)也是无法猜解的;
3) 假如文件名前6位带空格,8.3格式的短文件名会补进,和真实文件名不匹配;
(三) 远程代码执行
1、 破绽引见及成因
在IIS6.0处置PROPFIND指令的时分,由于对url的长度没有停止有效的长度控制和检查,招致执行memcpy对虚拟途径停止结构的时分,引发栈溢出,从而招致远程代码执行。
2、 破绽复现
1)破绽环境搭建
在windows server 2003 r2 32位上装置iis6.0
2) 触发破绽
在本地执行exp,exp如下
执行胜利后,效劳器端弹出计算器:
3、 破绽修复
1)关闭 WebDAV 效劳
2) 运用相关防护设备
(四) 解析破绽
1、 破绽引见及成因
IIS 6.0 在处置含有特殊符号的文件途径时会呈现逻辑错误,从而形成文件解析破绽。这一破绽有两种完整不同的应用方式:
/test.asp/test.jpgtest.asp;.jpg
2、破绽复现
应用方式 1
第一种是新建一个名为 “test.asp” 的目录,该目录中的任何文件都被 IIS 当作 asp 程序执行(特殊符号是 “/” )
应用方式 2
第二种是上传名为 “test.asp;.jpg” 的文件,固然该文件真正的后缀名是 “.jpg”, 但由于含有特殊符号 “;” ,仍会被 IIS 当做 asp 程序执行
IIS7.5 文件解析破绽
test.jpg/.php
URL 中文件后缀是 .php ,便无论该文件能否存在,都直接交给 php 处置,而 php 又默许开启 “cgi.fix_pathinfo”, 会对文件停止 “ 修理 ” ,可谓 “ 修理 ” ?举个例子,当 php 遇到途径 “/aaa.xxx/bbb.yyy” 时,若 “/aaa.xxx/bbb.yyy” 不存在,则会去掉最后的 “bbb.yyy” ,然后判别 “/aaa.xxx” 能否存在,若存在,则把 “/aaa.xxx” 当作文件。
若有文件 test.jpg ,访问时在其后加 /.php ,便能够把 “test.jpg/.php” 交给 php , php 修理文件途径 “test.jpg/.php” 得到 ”test.jpg” ,该文件存在,便把该文件作为 php 程序执行了。
3、 破绽修复
1)对新建目录文件名停止过滤,不允许新建包含‘.’的文件
2)曲线网站后台新建目录的功用,不允许新建目录
3)限制上传的脚本执行权限,不允许执行脚本
4)过滤.asp/xm.jpg,经过ISApi组件过滤
三、 Apache破绽剖析
(一) Apache简介
Apache 是世界运用排名第一的Web 效劳器软件。它能够运转在简直一切普遍运用的 计算机平台上,由于其 跨平台 和平安性被普遍运用,是最盛行的Web效劳器端软件之一。它快速、牢靠并且可经过简单的API扩大,将 Perl/ Python等 解释器编译到效劳器中。
(二) 解析破绽
1、 破绽引见及成因
Apache文件解析破绽与用户的配置有亲密关系,严厉来说属于用户配置问题。
Apache文件解析破绽触及到一个解析文件的特性:
Apache默许一个文件能够有多个以点分隔的后缀,当右边的后缀无法辨认(不在mime.tyoes内),则继续向左辨认,当我们恳求这样一个文件:shell.xxx.yyy
yyy->无法辨认,向左xxx->无法辨认,向左
php->发现后缀是php,交给php处置这个文件
2、 破绽复现
上传一个后缀名为360的php文件
3、 破绽修复
将AddHandler application/x-httpd-php .php的配置文件删除。
(三) 目录遍历
1、 破绽引见及成因
由于配置错误招致的目录遍历
2、 破绽复现
3、 破绽修复
修正apache配置文件httpd.conf
找到Options+Indexes+FollowSymLinks +ExecCGI并修正成 Options-Indexes+FollowSymLinks +ExecCGI 并保管;
四、 Nginx破绽剖析
(一) Nginx简介
Nginx 是一款 轻量级的 Web 效劳器、 反向代理 效劳器及 电子邮件(IMAP/POP3)代理效劳器,并在一个BSD-like 协议下发行。其特性是占有内存少, 并发才能强,事实上nginx的并发才能的确在同类型的网页效劳器中表现较好
(二)文件解析
1、 破绽引见及成因
对恣意文件名,在后面添加/恣意文件名.php的解析破绽,比方本来文件名是test.jpg,能够添加test.jpg/x.php停止解析攻击。
2、 破绽复现
在网站根目录下新建一个i.gif的文件,在里面写入phpinfo()
在阅读器中翻开
应用文件解析破绽,输入192.168.139.129:100/i.gif.2.php,发现无法解析
将/etc/php5/fpm/pool.d/www.conf中security.limit_extensions = .php中的.php删除
再次在阅读器中翻开,胜利解析
3、 破绽修复
1) 将php.ini文件中的cgi.fix_pathinfo的值设为0.这样php在解析1.php/1.jpg这样的目录时,只需1.jpg不存在就会显现404;
2) 将/etc/php5/fpm/pool.d/www.conf中security.limit_ectensions后面的值设为.php
(三)目录遍历
1、 破绽简介及成因
Nginx的目录遍历与Apache一样,属于配置方面的问题,错误的配置可到招致目录遍历与源码泄露。
2、 破绽复现
翻开test目录,发现无法翻开
修正/etc/nginx/sites-avaliable/default,在如下图所示的位置添加autoindex on。
再次访问
3、 破绽修复
将/etc/nginx/sites-avaliable/default里的autoindex on改为autoindex off
(四) CRLF注入
1、 破绽简介及成因
CRLF时“回车+换行”(rn)的简称。
HTTP Header与HTTP Body时用两个CRLF分隔的,阅读器依据两个CRLF来取出HTTP内容并显现出来。
经过控制HTTP音讯头中的字符,注入一些歹意的换行,就能注入一些会话cookie或者html代码,由于Nginx配置不正确,招致注入的代码会被执行。
2、 破绽复现
访问页面,抓包
恳求加上/%0d%0a%0d%0
由于页面重定向,并没有弹窗。
3、 破绽修复
Nginx的配置文件/etc/nginx/conf.d/error1.conf修正为运用不解码的url跳转。
(五) 目录穿越
1、 破绽简介及成因
Nginx反向代理,静态文件存储在/home/下,而访问时需求在url中输入files,配置文件中/files没有用/闭合,招致能够穿越至上层目录。
2、 破绽复现
访问:http://192.168.139.128:8081/files/
访问:http://192.168.139.128:8081/files../
胜利完成目录穿越:
3、 破绽修复
Nginx的配置文件/etc/nginx/conf.d/error2.conf的/files运用/闭合。
五、 Tomcat破绽剖析
(一) Tomcat简介
Tomcat 效劳器是一个免费的开放源代码的Web 应用效劳器,属于轻量级应用 效劳器,在中小型系统和并发访问用户不是很多的场所下被普遍运用,是开发和调试JSP 程序的首选。关于一个初学者来说,能够这样以为,当在一台机器上配置好Apache 效劳器,可应用它响应 HTML ( 规范通用标志言语下的一个应用)页面的访问恳求。实践上Tomcat是Apache 效劳器的扩展,但运转时它是独立运转的,所以当运转tomcat 时,它实践上作为一个与Apache 独立的进程单独运转的。
(二) 远程代码执行
1、 破绽简介及成因
Tomcat 运转在Windows 主机上,且启用了 HTTP PUT 恳求办法,可经过结构的攻击恳求向效劳器上传包含恣意代码的 JSP 文件,形成恣意代码执行。
影响版本: Apache Tomcat 7.0.0 – 7.0.81
2、 破绽复现
配置破绽,开启put办法可上传文件功用。
tomcat文件夹下的/conf/web.xml文件插入:
<init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param>
重启tomcat效劳。
访问127.0.0.1:8080,burp抓包,send to Repeater,将恳求方式改为PUT,创立一个122.jsp,并用%20转义空格字符。123.jsp内容为:
<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>
返回201,阐明创立胜利。
访问127.0.0.1:8080/122.jsp?cmd=calc。
弹出计算器:
3、 破绽修复
1)检测当前版本能否在影响范围内,并禁用PUT办法。
2)更新并晋级至最新版。
(三)war后门文件部署
1、破绽简介及成因
Tomcat 支持在后台部署war文件,能够直接将webshell部署到web目录下。
若后台管理页面存在弱口令,则能够经过爆破获取密码。
2、破绽复现
Tomcat装置目录下conf里的tomcat-users.xml配置如下:
访问后台,登陆:
上传一个war包,里面是jsp后门:
胜利上传并解析,翻开:
可执行系统命令:
也可停止文件管理,恣意查看、删除、上传文件:
3、破绽修复
1)在系统上以低权限运转Tomcat应用程序。创立一个特地的 Tomcat效劳用户,该用户只能具有一组最小权限(例如不允许远程登录)。
2)增加关于本地和基于证书的身份考证,部署账户锁定机制(关于集中式认证,目录效劳也要做相应配置)。在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制。
3)以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。
4)后台管理防止弱口令。
六、 jBoss破绽剖析
(一) jBoss简介
jBoss是一个基于J2EE的开发源代码的应用效劳器。 JBoss代码遵照LGPL答应,能够在任何商业应用中免费运用。JBoss是一个管理EJB的容器和效劳器,支持EJB1.1、EJB 2.0和EJB3的标准。但JBoss中心效劳不包括支持servlet/JSP的WEB容器,普通与Tomcat或Jetty绑定运用。
(二) 反序列化破绽
1、 破绽引见及成因
Java序列化,简而言之就是把java对象转化为字节序列的过程。而反序列话则是再把字节序列恢复为java对象的过程,但是就在这一转一变得过程中,程序员的过滤不严厉,就能够招致歹意结构的代码的完成。
2、 破绽复现
靶机启动jboss。
攻击机访问靶机效劳:
访问/invoker/readonly。
返回500,阐明页面存在,此页面有反序列化破绽:
抓包:
改包。
POST payload.bin中数据。
查看靶机,弹出计算器。
3、 破绽修复
有效处理计划:晋级到JBOSS AS7版本暂时处理计划:
1)不需求http-invoker.sar 组件的用户可直接删除此组件;
2)用于对 httpinvoker 组件停止访问控制。
(三) war后门文件部署
1、 破绽引见及成因
jBoss后台管理页面存在弱口令,经过爆破取得账号密码。登陆后台上传包含后门的war包。
2、 破绽复现
点击Web Application(war)s。
点击add a new resource。
选择一个war包上传,上传后,进入该war包,点击start。
查看status为sucessful。
访问该war包页面,进入后门。
可停止文件管理和系统命令执行。
七、 WebLogic破绽剖析
(一) WebLogic简介
WebLogic是美国Oracle公司出品的一个applicationserver,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型散布式Web应用、网络应用和数据库应用的Java应用效劳器。将Java的动态功用和Java Enterprise规范的平安性引入大型网络应用的开发、集成、部署和管理之中。
(二) 反序列化破绽
1、 破绽简介及成因
Java序列化,简而言之就是把java对象转化为字节序列的过程。而反序列话则是再把字节序列恢复为java对象的过程,但是就在这一转一变得过程中,程序员的过滤不严厉,就能够招致歹意结构的代码的完成。
2、破绽复现
运用vulhub实验环境,启动实验环境,访问靶机,抓包,修正数据包。
Kali启动监听。
发送数据包胜利后,拿到shell。
3、破绽修复
1)晋级Oracle 10月份补丁。
2)对访问wls-wsat的资源停止访问控制。
(三) SSRF
1、 破绽简介及成因
Weblogic 中存在一个SSRF破绽,应用该破绽能够发送恣意HTTP恳求,进而攻击内网中redis、fastcgi等脆弱组件。
2、 破绽复现
运用vulhub实验环境,启动环境。
访问http://192.168.139.129:7001/uddiexplorer/SearchPublicRegistries.jsp。
用burp抓包,修正恳求。
启动nc监听2222端口。
拿到shell。
3、 破绽修复
办法一:
以修复的直接办法是将SearchPublicRegistries.jsp直接删除就好了;
办法二:
1)删除uddiexplorer文件夹
2)限制uddiexplorer应用只能内网访问
办法三:(常用)
Weblogic效劳端恳求伪造破绽呈现在uddi组件(所以装置Weblogic时假如没有选择uddi组件那么就不会有该破绽),更精确地说是uudi包完成包uddiexplorer.war下的SearchPublicRegistries.jsp。办法二采用的是改后辍的方式,修复步骤如下:
1)将weblogic装置目录下的wlserver_10.3/server/lib/uddiexplorer.war做好备份
2)将weblogic装置目录下的server/lib/uddiexplorer.war下载
3)用winrar等工具翻开uddiexplorer.war
4)将其下的SearchPublicRegistries.jsp重命名为SearchPublicRegistries.jspx
5)保管后上传回效劳端交换原先的uddiexplorer.war
6)关于多台主机组成的集群,针对每台主机都要做这样的操作
7)由于每个server的tmp目录下都有缓存所以修正后要彻底重启weblogic(即停应用—停server—停控制台—启控制台—启server—启应用)
(四) 恣意文件上传
1、 破绽简介及成因
经过访问config.do配置页面,先更改Work Home工作目录,用有效的已部署的Web应用目录交换默许的存储JKS Keystores文件的目录,之后运用”添加Keystore设置”的功用,可上传歹意的JSP脚本文件。
2、 破绽复现
访问http://192.168.139.129:7001/ws_utc/config.do。
设置Work Home Dir为/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css。
然后点击平安 -> 增加,然后上传 webshell ,这里我上传一个 jsp 大马。
上传后,查看返回的数据包,其中有时间戳:
能够看到时间戳为1543145154632。
访问http://192.168.139.129:7001/ws_utc/css/config/keystore/1543145154632_lele.jsp。
能够停止文件管理、文件上传、系统命令执行等。
尝试以下执行系统命令。
命令执行胜利。
3、 破绽修复
计划1:
运用Oracle官方通告中的补丁链接:
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html
https://support.oracle.com/rs?type=doc&id=2394520.1
计划2:
1)进入Weblogic Server管理控制台;
2)domain设置中,启用”消费形式”。
(五) war后门文件部署
1、 破绽简介及成因
由于WebLogic后台存在弱口令,可直接登陆后台上传包含后门的war包。
2、 破绽复现
访问http://192.168.139.129:7001/console
运用弱口令登陆至后台。
点击锁定并编辑。
选择部署,进一步点击右边的装置。
点击上传文件 — 进入文件上传界面,选择要上传的 war 包。
进入下一步,选择对应的 war 包停止部署,下一步下一步直至完成。
点击激活更改。
启动上传的 war 包所生成的效劳。
拿到 webshell。
3、 破绽修复
防火墙设置端口过滤,也能够设置只允许访问后台的IP列表,防止后台弱口令。
八、 其它中间件相关破绽
(一) FastCGI未受权访问、恣意命令执行
1、 破绽简介及成因
效劳端运用fastcgi协议并对外网开放9000端口,能够结构fastcgi协议包内容,完成未受权访问效劳端.php文件以及执行恣意命令。
2、 破绽复现
运用vulhub实验环境,启动实验环境。
在攻击机运用命令python fpm.py 192.168.237.136 /etc/passwd,察看返回结果。
由于访问非*.PHP文件,所以返回结果403。
运用命令执行一个默许存在的 php 文件。
python fpm.py 192.168.237.136 /usr/local/lib/php/PEAR.php
应用命令停止恣意命令执行复现。
python fpm.py 192.168.139.129 /usr/local/lib/php/PEAR.php-c '<?php echo `pwd`; ?>'python fpm.py 192.168.139.129 /usr/local/lib/php/PEAR.php-c '<?php echo `ifconfig`; ?>'python fpm.py 192.168.139.129 /usr/local/lib/php/PEAR.php-c '<?php echo `ls`; ?>'
3、 破绽修复
更改默许端口
(二) PHPCGI远程代码执行
1、 破绽简介及成因
在apache调用php解释器解释.php文件时,会将url参数传我给php解释器,假如在url后加传命令行开关(例如-s、-d 、-c或-dauto_prepend_file%3d/etc/passwd+-n)等参数时,会招致源代码泄露和恣意代码执行。
此破绽影响php-5.3.12以前的版本,mod方式、fpm方式不受影响。
2、 破绽复现
运用vulhub实验环境,启动环境。
访问http://192.168.139.129:8080/index.php。
抓包,修正包。
命令胜利执行。
3、 破绽修复
三种办法:
1)晋级php版本;(php-5.3.12以上版本);
2)在apache上做文章,开启url过滤,把风险的命令行参数给过滤掉,由于这种办法修补比拟简单,采用比拟多吧。
详细做法:
修正http.conf文件,找到增加以下三行
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]
重启一下apache即可,但是要思索到,相当于每次request就要停止一次url过滤,假如访问量大的话,可能会增加apache的担负。
3)打上php补丁。
补丁下载地址:https://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
![头像](/wp-content/themes/zibll/img/avatar-default.png)
- 最新
- 最热
只看作者