一.Apache
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一
1.解析漏洞
1. 漏洞原理
Apache默认一个文件可以有多个以点分隔的后缀,当右边的后缀无法识别,则继续向左识别,直到发现后缀是php,交给php处理这个文件
2. 漏洞复现
在apache加入如下一行
AddHandler application/x-httpd-php .php
建立一个xx.php.xx.yy的文件,里面写上Php代码
访问后
3、 漏洞修复
将apache 配置文件中删除这一行 AddHandler application/x-httpd-php .php
2. 目录浏览
修改apache配置文件httpd.conf
找到Options-Indexes+FollowSymLinks +ExecCGI并修改成 Options+Indexes+FollowSymLinks +ExecCGI 并保存;
就可以目录浏览
二.nginx
1. 解析漏洞
漏洞原理
当php.ini 中 cgi.fix_pathinfo = 1时,对任意文件名,在后面添加/任意文件名.php的解析漏洞,比如原本文件名是3.jpg,可以添加3.jpg/x.php进行解析攻击
漏洞复现
先建立一个php.里面写入phpinfo,更名为3.jpg,访问如下
cgi.fix_pathinfo = 0条件下
cgi.fix_pathinfo = 1条件下
或者;cgi.fix_pathinfo = 0条件下
有时间改了也不行,还有将/etc/php5/fpm/pool.d/www.conf中security.limit_extensions = .php中的.php删除
现在高版本改了这2个地方也不行
1. 目录浏览
在nginx 配置文件中设置autoindex on
TOMCAT
1.远程代码执行
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用 服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选
1. 漏洞原理
Tomcat 运行在Windows 主机上,且启用了 HTTP PUT 请求方法,可通过构造的攻击请求向服务器上传包含任意代码的 JSP 文件,造成任意代码执行。
2漏洞复现
配置漏洞,开启put方法可上传文件功能。
tomcat文件夹下的/conf/web.xml文件插入:
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
重启tomcat服务。
Not Found通过描述中的 Windows 受影响,可以结合 Windows 的特性。其一是 NTFS 文件流,其二是文件名的相关限制(如 Windows 中文件名不能以空格结尾)来绕过限制:
如以下2种就算成功
漏洞修复
conf/web.xml 中对于 DefaultServlet 的 readonly 设置为 true,才能防止漏洞
2.war后门文件部署
1. 漏洞原理
Tomcat 支持在后台部署war文件,可以直接将webshell部署到web目录下。
2.漏洞复现
tomcat 后台弱口令或者爆破可以来到如下页面
上传war包,点击部署,部署完后会在如下显示
然后访问127.0.0.1/aa/aa.jsp
3.漏洞修复
在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录
后台管理避免弱口令。
Jboss漏洞
1.漏洞原理
2017年8月30日,厂商Redhat发布了一个JBOSSAS 5.x 的反序列化远程代码执行漏洞通告。该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码
2.漏洞复现
Jboss反序列化漏洞
当出现如下页面时,说明存在漏洞
漏洞利用工具
https://github.com/yunxu1/jboss-_CVE-2017-12149
3、 漏洞修复
有效解决方案:升级到JBOSS AS7版本临时解决方案:
2.war后门文件部署
我的这篇文章中有讲jboss漏洞getshell
WebLogic漏洞
(二) 反序列化漏洞
1.WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
1.漏洞成因
Java序列化,简而言之就是把java对象转化为字节序列的过程。而反序列话则是再把字节序列恢复为java对象的过程,然而就在这一转一变得过程中,程序员的过滤不严格,就可以导致恶意构造的代码的实现。
2。漏洞复现
漏洞检测工具https://pan.baidu.com/s/1bpg3ppl
漏洞利用
上传文件利用代码</