中间件定义
中间件定义:中间件是一类连接软件组件和应用的计算机技软件,包括一组服务,以便运行在一台或多台机器上的多个软件进行交互。所提供互操作性,推动了分布式体系架构,该架构常用于支持并简化复杂的分布式应用程序,包括web服务器,事务监控器,消息队列软件
常见WEB中间件
开源web中间件
Apache httpd JBOSS Jetty JTomcat Nginx
商业web中间件
Websphere Weblogic IIS
Apache
Apache httpd常用命令
service httpd start 开启服务
service httpd stop 停止服务
service httpd trestart 重启服务
http -v 查看应用服务版本
service httpd status 查看服务运行状态
ps -ef | grep httpd查看w服务对应的进程
httpd -s 查看服务信息
Apache httpd服务相关文件
/etc/httpd/conf/httpd.conf Apache的主配置文件
/usr/lib64/httpd/modules/ Apache模块存放路径
/var/www/html 网站默认根目录
/var/www/cgi-bin/ 可执行的CGI程序存放目录
/var/log/httpd/ Apache日志目录
Apache httpd 常用安全配置
--合理控制Apache运行账户的权限
新建Apache用户组及Apache用户来运行Apache httpd服务
--严格控制主目录、配置文件及日志文件的访问权限
设置文件上传目录为不可执行
设置主目录权限为非属主不可执行
设置配置文件为仅属主可读写,如chmod 600 /etc/httpd/conf/httpd.conf
设置日志文件为仅属主可写, 如chmod 644 /var/ log/httpd/*.log
--在httpd.conf中配置相关日志
错误日志
访问日志
--禁止目录列出
修改Options Indexe FollowSymlinks 为 Options FollowSymlinks
--错误页面重定向
设置400的错误页面ErrorDocument 400 /custom400.html
--设置合理session时间
修改Timeout、KeepAlive、KeepAliveTimeout的值
--隐藏Apache httpd版本号
ServerSignature Off Server Tokens Prod
--关闭TRECE功能
TraceEnable Off
--禁用CGI
注释CGI相关模块
--绑定监听地址
listen x.x.x.x:80
--禁用非法的HTTP方法
添加配置
<Location />
<LimitExcept GET POST CONNECT OPTIONS>
Order Allow,Deny
Deny from all
</LimitExcept>
<Location>
Apache http常见漏洞
换行解析漏洞
漏洞编号:CVE-2017-15715
漏洞影响版本Apache httpd v2.4.0-v2.4.29
漏洞描述:在解析PHP时,xx.php\x0A将被按照php后缀进行解析,可绕过一些安全策略
多后缀解析漏洞
漏洞编号:CVE-2017-15715
漏洞描述:Apache httpd支持一个文件有多个后缀,像xxx.php.jpg。如果Apache配置文件(Apache/conf/httpd.conf)中国存在如下代码:AddHAndler application/x-httpd-php.php。当文件中存在.php时该文件就会被解析为php文件。
目录遍历漏洞
漏洞编号:CVE-2021-41773
漏洞影响版本Apache httpd v2.4.29
漏洞描述:在Apache httpd v2.4.9中引入了ap_normalize_path 函数对路径进行规范时先进性URL解码,判断是否存在.../的路径穿越符,若检测到路径中存在%时,后面2个字符是16进制字符,便会进行URL解码。可以构造curl -v --path-as-is http://像.x.x.x.x:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd进行利用。
还有很多其他漏洞,不再描述。
Tomcat
Tomcat常用命令
service tomcat start 开启服务
service tomcat stop 停止服务
service tomcat restart 重启服务
service tomcat status 查看服务运行状态
ps -ef | grep tomcat 查看服务对应的进程
Tomcat相关服务文件
/bin tomcat 执行脚本的目录
/conf tomcat 配置文件目录
/lib tomcat 运行需要的库文件
/logs tomcat 执行文件的log文件
/temp tomcat 临时文件存放目录
/webapps tomcat的主要web发布目录
/work tomcat的工作目录,存放.java,.class等文件
--bin目录下的相关文件
cataline.sh 用于启动和关闭tomcat服务器
configtest.sh 用于检查配置文件
startup.sh 启动tomcat脚本
shutdown.sh 关闭tomcat脚本
--conf目录下的重要文件
server.xml tomcat全局配置文件
web.xml 为不同tomcat配置的web应用设置缺省值的文件
tomcat-user.xml tomcat用户认证的配置文件
Tomcat常用安全配置
--开启tomcat的访问日志
在conf/server.xml开启日志记录
--tomcat默认账户的安全性
在conf/tomcat-user.xml注释默认用户或修改默认用户的密码为强密码
--重定向错误页面
在conf/web.xml中加入下面代码可定义404的错误页面,错误页面放置于工程根目录下,其他页面也可以。
<error-page>
<error-code>404</error-code>
<location>error.html</location>
</error-page>
--禁止列出目录
修改conf/web.xml文件(把listings的参数改为false)
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
--删除文档和示例程序
将webapps目录下的docs、examples等不需要的初始文件删除。
Tomcat常见漏洞
远程代码执行
漏洞编号:CVE-2020-1938
漏洞影响版本:
apache tomcat 6
apache tomcat 7 <7.0.100
apache tomcat 8 <8.5.51
Apache tomcat 9 <9.0.31
漏洞描述:tomcat默认开启AJP服务(8009端口),存在一处文件包含缺陷,攻击者可构造恶意请求包进行文件包含,进而读取受影响tomcat服务器上web目录文件,攻击者可以读取任意webapps文件(配置文件,源代码等)或包括一个文件来执行代码。
弱口令+war包后门部署
漏洞影响版本:全版本
漏洞介绍:tomcat可通过web界面进行war包部署,若部署界面存在弱口令,攻击者便可通过此功能上传带有webshell功能的war包。