精华内容
下载资源
问答
  • 常见安全漏洞

    千次阅读 2016-12-19 14:06:29
    常见安全漏洞
     1 SQL注入

    许多网站程序在编写时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,(一般是在浏览器地址栏进行,通过正常的www端口访问)根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection ,即SQL注入。
    其主要危害有:在未经授权状况下操作数据库中的数据;恶意篡改网页内容;私自添加系统帐号或者是数据库使用者帐号;网页挂木马等。

    SQL注入被广泛用于非法入侵网站服务器,获取网站控制权。它是应用层上的一种安全漏洞。通常在设计存在缺陷的程序中,对用户输入的数据没有做好过滤,导致恶意用户可以构造一些SQL语句让服务器去执行,从而导致数据库中的数据被窃取,篡改,删除,以及进一步导致服务器被入侵等危害。

    2 XSS

    XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。
    其主要危害有:攻击者通常会在有漏洞的程序中插入 JavaScript、VBScript、ActiveX或Flash以欺骗用户。一旦得手,他们可以盗取用户帐户,修改用户设置,盗取/污染cookie,做虚假广告等。

    发生在客户端DOM(Document Object Model文档对象模型)DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不需要提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞


    3 信息泄露


    信息泄露是指应用程序泄露应该保密的信息,例如客户端注释中泄露敏感信息、系统日志泄露敏感信息等。这些泄露的信息可能会对攻击者进一步了解应用程序,以致攻击应用程序提供一定的帮助。

    用户认证信息明文传输: 用户认证信息不是通过https加密信道传输,导致用户名密码等敏感信息泄露。

    4 越权漏洞

    越权漏洞是指由于应用程序未正确实现授权功能,造成用户可以执行其没有资格执行的操作,包括可以查看或修改他本身没资格查看或修改的资源,以及可以执行用户本身没有的功能。


    5 暴力破解

    暴力破解是一种针对于密码的破译方法,即将密码进行逐个推算直到找出真正的密码为止。攻击者利用该漏洞可以破解存在该漏洞的应用程序的用户密码。


    6 文件上传漏洞

    文件上传漏洞是由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。恶意攻击者利用该漏洞可以直接向服务器上传一个 webshell( 又称 ASP 木马、PHP 木马等即利用服务器端的文件操作语句写成的动态网页,可以用来编辑你服务器上的文件 ),从而控制该网站。


    7 CSRF

    跨站请求伪造(CSRF)是 Web 应用程序一种常见的漏洞,其攻击特性是危害性大但非常隐蔽,尤其是在大量 Web 2.0 技术的应用的背景下,CSRF 攻击完全可以在用户法毫无察觉的情况下发起攻击。发起的目标都是通过伪造一个用户请求,该请求不是用户想发出去的请求,而对服务器或服务来说这个请求是完全合法的一个请求,但是却完成了一个攻击者所期望的操作,比如添加一个用户到管理者的群组中,或将一个用户的现金转到另外的一个帐户中。


    8 路径遍历漏洞

    许多功能强迫Web应用程序根据用户在请求中提交的参数向文件系统读取或写入数据。如果以不安全的方式执行这些操作,攻击者就可以提交专门设计的输入,使得应用程序访问开发者并不希望他访问的文件,这就是路径遍历漏。攻击者可利用这种缺陷读取密码和应用程序日志之类的敏感数据,或者复写安全性至关重要的数据项,如配置文件和软件代码。在最为严重的情况下,这种漏洞可使攻击者能够完全攻破应用程序与基础操作系统。


    9 服务器开启了不安全的http方法

    OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。开启该方法有可能泄漏一些敏感信息,为攻击者发起进一步攻击提供信息。

    TRACE_Method是HTTP(超文本传输)协议定义的一种协议调试方法,该方法会使服务器原样返回任意客户端请求的任何内容。由于该方法会原样返回客户端提交的任意数据,因此可以用来进行跨站脚本(简称XSS)攻击,这种攻击方式又称为跨站跟踪攻击(简称XST)。

    展开全文
  • 安全漏洞管理制度.doc

    2019-11-06 00:10:07
    安全漏洞管理制度,信息系统安全漏洞的发现、评估及处理过程。
  • suse11安全漏洞整改

    2019-01-22 06:50:02
    安全漏洞整改,系统安全策略部署和全部内容解析以及信息安全
  • zookeeper安全漏洞修复

    2019-01-17 11:12:00
    ZooKeeper 未授权访问【原理扫描】,zookeeper安全漏洞修复方法和操作步骤
  • 安全漏洞与网络攻击

    千次阅读 多人点赞 2021-10-07 16:11:19
    一、安全漏洞及产生原因 1. 安全漏洞概念 2. 漏洞产生的技术原因 3. 漏洞产生的经济原因 二、信息收集与分析 1. 攻击的过程 2. 信息收集:攻击的前奏 3.收集什么信息 4. 信息收集与分析工具 5. 公开信息...

    目录

    一、安全漏洞及产生原因

    1. 安全漏洞概念

    2. 漏洞产生的技术原因

    3. 漏洞产生的经济原因

    二、信息收集与分析

    1. 攻击的过程

    2. 信息收集:攻击的前奏

    3. 收集什么信息

    4. 信息收集与分析工具

    5. 公开信息收集-搜索引擎

    6. 信息收集与分析

    7. 信息收集与分析的防范

    三、网路攻击实施

    1. 网络攻击方式

    2. 网络攻击方式—电子欺骗

    3. 典型网络攻击—拒绝服务攻击

    4. 网络攻击方式

    四、后门设置与痕迹消除

    1. 后门—你的就是我的

    2. 痕迹—攻击者的把柄

    3. 日志保护

    4. 日志分析重点

    5. 日志分析


    一、安全漏洞及产生原因

    1. 安全漏洞概念

    安全漏洞:也称脆弱性,是计算机系统存在的缺陷

    漏洞的形式:安全漏洞以不同形式存在、漏洞数量逐年递增

    2. 漏洞产生的技术原因

    (1)内因:

    软件复杂性使得漏洞不可避免;

    软件规模增大,功能越来越多,越来越复杂,难以避免缺陷;

    软件模块复用,导致安全漏洞延续;

    缺乏从设计开始安全考虑。

    (2)外因:互联网发展对软件安全的挑战

    3. 漏洞产生的经济原因

    软件开发管理过程中缺乏对安全的重视:

    (1)市场和业务要求将交付期和软件功能做主要因素

    (2)用户方没有提供安全方面的压力

    “劣币驱除良币"效应,重视安全的公司被淘汰

    劣币驱除良币效应后果:

    (1)企业管理层对安全开发缺乏了解;

    (2)开发管理人员不了解软件安全开发的管理流程、方法和技巧;

    (3)软件开发人员缺乏将软件安全需求、安全特性和编程方法进行结合的能力;

    (4)测试人员无法以“坏人"的角度来思考软件安全问题。

    漏洞产生的应用环境原因:

    (1)互联网的发展使软件运行环境从传统的封闭、静态和可控变为开放、动态和难控;

    (2)攻防信息不对称性进一步增强,攻易守难的矛盾进一步凸显;

    (3)强大经济利益推动漏洞挖掘产业化方向发展。

    二、信息收集与分析

    1. 攻击的过程

    (1)踩点:信息收集及分析

    (2)入侵:实施攻击

    (3)后门:方便下次进入

    (4)痕迹:清除入侵记录

    2. 信息收集:攻击的前奏

    为什么要信息收集?

    1. 知己知彼百战不殆
    2. 信息是攻击的基础
    3. 信息收集可以成为攻击的方式

    为什么需要分析目标?

    1. 确定收集信息的准确性
    2. 攻击方式及攻击路径的选择

    3. 收集什么信息

    目标IT相关信息:

    (1)目标的域名信息

    (2)目标的网络拓扑结构、安全设备型号、配置

    (3)目标系统版本、数量

    (4)目标应用软件版本、型号、开发语言、开发商等

    (5)目标的相关Web网页内容

    目标相关公开信息:

    (1)组织机构、地理位置、电话号码、邮件等联系方式

    (2)近期重大事件

    (3)员工简历

    其他可能令攻击者感兴趣的信息

    4. 信息收集与分析工具

    (1)系统命令:Nslookup、Whois、tracert、ping等

    (2)专用软件:Kali linux等

    (3)搜索引擎:google、百度扫描器

    (4)扫描器:

    端口扫描器:nmap等

    漏洞扫描软件:

    √ 系统漏洞扫描:nessus等;

    √ Web漏洞扫描: appscan等;

    √ 数据库漏洞

    5. 公开信息收集-搜索引擎

    快速定位:

    某开源软件xxxx.jsp脚本存在漏洞,Google搜索“xxxx.jsp”可以找到存在此脚本的Web网站。

    信息挖掘:

    (1)定点采集:Google搜索“.doc+website”挖掘信息;

    (2)隐藏信息:.mdb、.ini、.txt、.old、.bak、.001、……

    (3)后台入门

    6. 信息收集与分析

    网络信息收集:

    (1)正常服务(如whois)

    (2)系如功能:Ping、tracert

    系统及应用信息收集:

    √ 服务旗标

    √ 欢迎信息

    √ 端口扫描

    √ TCP/IP协议指纹识别

    7. 信息收集与分析的防范

    公开信息收集防御:

    信息展示最小化原则,不必要的信息不要发布。

    网络信息收集防御:

    (1)部署网络安全设备(IDS、防火墙等)

    (2)设置安全设备应对信息收集(阻止ICMP)

    系统及应用信息收集防御:

    (1)修改默认配置(旗标、端口等)

    (2)减少攻击面

    三、网路攻击实施

    1. 网络攻击方式

    √ 配置缺陷:

    (1)默认账户/口令

    (2)不合理配置

    (3)案例:启用匿名(默认)、默认匿名身份(iuser_计算机名称)、配置给予更高权限。

    √ 口令破解

    √ 社会工程学攻击

    2. 网络攻击方式—电子欺骗

    欺骗攻击(Spoofing)是指通过伪造源于可信任地址的数据包以使一台机器认证另一台机器的复杂技术。

    电子欺骗的方式:

    (1)ARP欺骗(ARP Spoof)

    (2)DNS欺骗(DNS Spoof)

    (3)IP欺骗(IP Spoof)

    (4)TCP会话劫持(TCP hijack)

    (5)路由欺骗

    3. 典型网络攻击—拒绝服务攻击

    什么是拒绝服务:

    拒绝服务攻击(Denial of Service),顾名思义就是让被攻击的系统无法进行正常服务的攻击方式。

    拒绝服务攻击方式:

    (1)利用系统、协议或服务的漏洞;

    (2)消耗目标系统服务资源能力(带宽、性能)

    典型攻击方式:

    SYN Flood

    UDP Flood

    Teardrop

    Ping of death

    Smurf

    Land

    4. 网络攻击方式

    溢出攻击:

    (1)缓冲区溢出(曾经的攻与防的焦点)

    心脏滴血、想哭勒索软件等都是利用溢出漏洞进行攻击

    (2)格式化字符串溢出

    代码注入:

    (1)SQL注入

    (2)命令注入

    (3)Xpath注入

    跨站脚本

    跨站请求

    会话管理漏洞利用

    文件上传漏洞

    四、后门设置与痕迹消除

    1. 后门—你的就是我的

    后门可以做什么:

    (1)方便下次直接进入

    (2)监视用户所有行为、隐私

    (3)完全控制用户主机

    后门方式:

    √ 系统后门

    操作系统级后门:

    (1)特洛伊木马程序

    (2)Rootkit

    (3)设备驱动

    应用级后门:

    (1)应用软件模块(Apache model)

    (2)被篡改的应用软件

    √ 脚本后门

    脚本后门威胁:

    (1)隐藏性强

    (2)难以查找

    √ 账号后门

    (1)隐藏账号

    (2)已知密码的正常账号

    (3)超权限账号

    2. 痕迹—攻击者的把柄

    √ 清除/改写日志:

    (1)日志的清除方法

    (2)日志的改写工具

    √ 删除中间文件

    √ 删除创建的用户

    3. 日志保护

    日志设置:

    (1)尽可能多的信息

    (2)日志时间

    (3)日志空间

    日志权限

    日志存储:

    (1)本地路径及备份方式

    (2)网络存储(日志服务器)

    4. 日志分析重点

    日期时间(确定攻击的时间)

    源IP(确定攻击者IP)

    请求方法(部分情况下要关注post操作)

    请求链接(查找链接中的特殊字符串)

    状态代码(了解操作的结果)

    5. 日志分析

    关注超长的记录:

    (1)http协议对URL长度没有限制

    (2)一般网站正常情况下不需要太长的URL

    关注记录中的非正常编码:

    例如红色代码蠕虫攻击会形成如下记录:

    关注日志请求链接中的关键字:

    cmd、select、xp_cmdshell、Post等

    展开全文
  • IIS的十七个常见安全漏洞
  • WEB安全漏洞集锦

    2013-09-05 10:47:27
    WEB安全漏洞 1 1. SQL注入漏洞 4 漏洞描述 4 漏洞危害 4 解决方案 4 代码示例 4 2. 跨站脚本(XSS)漏洞 6 漏洞描述 6 漏洞危害 6 解决方案 7 代码示例 7 3. HTTP header注入漏洞 8 漏洞描述 8 修复建议 8 4. 目录...
  • appscan安全漏洞修复

    热门讨论 2011-12-21 12:21:18
    针对appscan安全漏洞扫描出的漏洞的一些解放方法。 1.不充分账户封锁 2.会话标识未更新 3.跨站点请求伪造 4.启用了不安全的http方法 5.已解密的登录请求
  • 安全漏洞概念及分类

    2014-11-21 11:10:31
    本文是一个安全漏洞相关的科普,介绍安全漏洞的概念认识,漏洞在几个维度上的分类及实例展示。
  • GB∕T 33561-2017 信息安全技术 安全漏洞分类 国家标准
  • js安全漏洞目前存在较大的技术难题,本文结合案例给大家详解JavaScript 常见安全漏洞和自动化检测技术,需要的朋友可以参考下
  • 安全漏洞之host头攻击漏洞

    千次阅读 2020-03-27 20:05:22
    安全漏洞之host头攻击漏洞 漏洞描述 渗透测试人员发现,抓包修改host头,在返回包中的base标签中的值会随host值改变,说明存在host头攻击漏洞。 漏洞建议 建议使用SERVER_NAME而不是hostheader。 脆弱性...

                                 安全漏洞之host头攻击漏洞

    漏洞描述

    渗透测试人员发现,抓包修改host头,在返回包中的base标签中的值会随host值改变,说明存在host头攻击漏洞。

    漏洞建议

    建议使用SERVER_NAME而不是host header。

     

    脆弱性评价:

    严重程度

     

     

    修复过程:

    web.xml:

    <servlet>
            <servlet-name>image</servlet-name>
            <servlet-class>com.linkage.component.util.file.ImageServlet</servlet-class>
        </servlet>
        
        <servlet-mapping>
            <servlet-name>bssframe</servlet-name>
            <url-pattern>/portal</url-pattern>
        </servlet-mapping>
        
        <servlet-mapping>
            <servlet-name>attach</servlet-name>
            <url-pattern>/attach</url-pattern>
        </servlet-mapping>
        
        <servlet-mapping>
            <servlet-name>image</servlet-name>
            <url-pattern>/image</url-pattern>
        </servlet-mapping>
    
    	<session-config>
    		<session-timeout>480</session-timeout>
    	</session-config>

    ImageServlet.java:

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    
    package com.linkage.component.util.file;
    
    import com.linkage.appframework.common.Common;
    import com.linkage.appframework.data.IData;
    import com.linkage.component.AppServlet;
    import com.linkage.component.PageData;
    import com.linkage.component.bean.adm.UtilBean;
    import com.linkage.webframework.util.file.FileMan;
    import com.linkage.webframework.util.file.ImageMan;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.commons.fileupload.FileItem;
    
    public class ImageServlet extends AppServlet {
        public static final String IMAGE_ACTION_UPLOAD = "upload";
        public static final String IMAGE_ACTION_VIEW = "view";
        public static final String IMAGE_VIEW_VALIDATE = "validate";
        public static final String IMAGE_VIEW_FILE = "file";
        protected Common common = Common.getInstance();
    
        public ImageServlet() {
        }
    
        public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            try {
                this.servletInit(request, response);
                PageData pd = this.getPageData();
                UtilBean bean = new UtilBean();
                String action = pd.getParameter("action", "view");
                String mode;
                String width;
                if ("upload".equals(action)) {
                    mode = pd.getParameter("IMAGE_WIDTH");
                    width = pd.getParameter("IMAGE_HEIGHT");
                    FileItem item = pd.getFileItem("IMAGE_PATH");
                    IData data = bean.createFile(pd, item, "2", "1");
                    StringBuffer src = new StringBuffer();
                    src.append("image?file_id=" + data.get("FILE_ID"));
                    if (!"".equals(mode)) {
                        src.append("&width=" + mode);
                    }
    
                    if (!"".equals(width)) {
                        src.append("&height=" + width);
                    }
    
                    StringBuffer image = new StringBuffer();
                    image.append("<img src='" + src + "'");
                    image.append("\t  border='" + pd.getParameter("IMAGE_BORDER") + "'");
                    image.append("\t  hspace='" + pd.getParameter("IMAGE_HORI") + "'");
                    image.append("\t  vspace='" + pd.getParameter("IMAGE_VERT") + "'");
                    image.append("\t  alt='" + pd.getParameter("IMAGE_DESC") + "'");
                    image.append("\t  align='" + pd.getParameter("IMAGE_ALIGN") + "'");
                    image.append("/>");
                    PrintWriter out = response.getWriter();
                    out.println("<script language=\"javascript\"><!--");
                    out.print("window.returnValue = \"" + image + "\"; window.close();");
                    out.println("// --></script>");
                }
    
                if ("view".equals(action)) {
                    mode = pd.getParameter("mode", "file");
                    width = pd.getParameter("width");
                    String height = pd.getParameter("height");
                    String file_id;
                    
    
                    if ("validate".equals(mode)) {
                        String query = request.getQueryString();
                        String[] arrs = new String[]{"|", "$", "'", "'", "(", "CR", "(HOST)", "</script>", "--", "%", "LF", "(host)", "<", "script", "@", "+", "<>"};
                        int num = 0;
    
                        for(int i = 0; i < arrs.length; i++) {
                            if (arrs[i].length() > 0 && query.indexOf(arrs[i]) > 0) {
                                log.debug("HOST WARNING !!!--->( " + arrs[i] + " ) ");
                                num++;
                            }
                        }
    
                        if (num > 0) {
                            this.common.error("您采取非法登陆方式,参数含有特殊字符,拒绝访问");
                        }
    
                        file_id = ImageMan.showValidateImage(response, Integer.parseInt(width), Integer.parseInt(height));
                        request.getSession().setAttribute("VERIFY_CODE", file_id);
    
                        String verify_code = ImageMan.showValidateImage(response, Integer.parseInt(width), Integer.parseInt(height));
                        request.getSession().setAttribute("VERIFY_CODE", verify_code);
                    }
    
                    if ("file".equals(mode)) {
                        file_id = pd.getParameter("file_id");
                        String file_path = pd.getParameter("file_path");
                        if (file_id == null) {
                            ImageMan.showImage(response, file_path, FileMan.getFileType(file_path), width, height);
                        } else {
                            IData data = bean.queryFile(pd, file_id);
                            if (data == null) {
                                this.common.error("文件记录 " + file_id + " 不存在!");
                            }
    
                            String full_name = (String)data.get("FILE_PATH") + "/" + data.get("FILE_ID");
                            String file_name = (String)data.get("FILE_NAME");
                            ImageMan.showImage(response, full_name, FileMan.getFileType(file_name), width, height);
                        }
                    }
                }
            } catch (Exception var17) {
                this.servletReseted();
                this.setErrorInfo(var17);
            } finally {
                this.servletDetached();
            }
    
        }
    }
    

    home.java:

    //防止host头攻击漏洞
            String host =pd.getRequest().getHeader("referer");
            log.debug("host--------->"+host);
            String[] arrs ={"|","$","'","\'","(","CR","(HOST)","</script>","--","%","LF","(host)","<","script","@","+","<>"};
            int num=0;
            for(int i=0;i<arrs.length;i++){
                if(arrs[i].length()>0 && host.indexOf(arrs[i])>0 ){
                    log.debug("HOST WARNING !!!--->( " + arrs[i] + " ) ");
                    num++;
                }
            }
            if(num>0){
                common.error("您采取非法登陆方式,参数含有特殊字符,拒绝访问");
            }

     

    展开全文
  • Jetty 安全漏洞分析

    千次阅读 2021-05-22 15:37:19
    Jetty 安全漏洞分析1. 安全问题分析2. 升级验证3. Jetty版本不准确问题分析4. Jetty版本不能准确的临时解决方案5. 应用例子案例 1:metabase案例 2:jenkins 记录日期:2021/5/21 1. 安全问题分析 在做服务器安全...

    记录日期:2021/5/21

    1. 安全问题分析

    在做服务器安全扫描时,有时会报出 jetty 的漏洞。
    在这里插入图片描述
    查看漏洞详情可知,低版本的 jetty 包含漏洞,升级 jetty 到新版本就可以修复这些漏洞。

    漏洞官方问题连接修复版本
    Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7656)https://bugs.eclipse.org/bugs/show_bug.cgi?id=5356679.3.24.v20180605 9.4.11.v20180605
    Eclipse Jetty 输入验证错误漏洞(CVE-2018-12545)https://bugs.eclipse.org/bugs/show_bug.cgi?id=5380969.4.12
    Eclipse Jetty 授权问题漏洞(CVE-2018-12538)https://bugs.eclipse.org/bugs/show_bug.cgi?id=5360189.4.9.v20180320
    Jetty 信息泄露漏洞(CVE-2017-9735)https://github.com/eclipse/jetty.project/issues/1556 https://github.com/gwtproject/gwt/issues/95679.4.6.v20170531 9.3.20.v20170531 9.2.22.v20170606
    Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7658)https://bugs.eclipse.org/bugs/show_bug.cgi?id=5356699.2.25.v20180606 9.3.24.v20180605 9.4.11.v20180605
    Eclipse Jetty信息泄露漏洞(CVE-2018-12536)https://bugs.eclipse.org/bugs/show_bug.cgi?id=5356709.3.24.v20180605 9.4.11.v20180605
    Eclipse Jetty 信息泄露漏洞(CVE-2019-10247)https://bugs.eclipse.org/bugs/show_bug.cgi?id=5465779.2.28.v20190418 9.3.27.v20190418 9.4.17.v20190418
    Eclipse Jetty 信息泄露漏洞(CVE-2019-10246)https://bugs.eclipse.org/bugs/show_bug.cgi?id=5465769.2.28.v20190418 9.3.27.v20190418 9.4.17.v20190418
    Eclipse Jetty跨站脚本执行漏洞(CVE-2019-10241)https://bugs.eclipse.org/bugs/show_bug.cgi?id=5461219.2.27.v20190403 9.3.26.v20190403 9.4.16.v20190411

    分析完以上漏洞,只要将 jetty 版本升级到 9.4.17 及以上,可以修复以上所有安全漏洞。

    (注意:应该避免使用 v9.4.27-v9.4.29,这 3个版本含有已知的漏洞 “Eclipse Jetty 安全漏洞(CVE-2019-17638)”)

    2. 升级验证

    jetty 升级过程这里不做介绍。假设顺利升级至 9.4.17。

    启动Jetty后,通过下面命令访问网站,检查服务器返回信息:

    $ curl -I http://localhost:3000
    

    查看服务器返回信息
    在这里插入图片描述
    发现服务器返回的 Jetty 版本是 9.4.z-SNAPSHOT,安全扫描还是会检测到版本不安全,报出漏洞。
    在这里插入图片描述

    3. Jetty版本不准确问题分析

    出现上面的问题很奇怪,我们明明已经升级到了 9.4.17,为什么服务器返回的是 9.4.z。查看 Jetty 官网 Issue 发现,这是 Jetty-9.4.20 以下版本的一个 bug。https://github.com/eclipse/jetty.project/issues/3918

    升级到 9.4.20 及以上版本后,服务器返回准确版本。

    4. Jetty版本不准确的临时解决方案

    如果想继续使用 Jetty 9.4.17(因为这个版本实际并没有安全漏洞,只是由于服务器返回版本不准确,导致安全扫描工具误报),有什么办法吗?

    查看 Jetty 源码
    在这里插入图片描述
    9.4.20 之前的代码逻辑,首先尝试从 package 中获取版本号,取不到后从系统参数中取 jetty.version,如果系统参数中没有,就使用默认值 9.4.z-SNAPSHOT

    因此,可以在启动 Jetty 时增加系统参数解决 jetty.version=9.4.17.v20190418

    (添加系统参数的方法,可以让服务器返回指定的 Jetty 版本号。那么,回到问题的开始,如果我们不升级 jetty 版本,只是在启动 jetty 时通过添加一个假的、高的版本号,其实也可以让扫描软件不报错。)

    5. 应用例子

    案例 1:metabase

    metabase 是一个开源报表工具,其中内嵌了 jetty。

    • Metabase v0.34.x 内嵌的 Jetty 9.4.15.v20190215
    • Metabase v0.35.x – v0.36.7 内嵌的 Jetty 9.4.27 v20200227
    • Metabase v0.36.8 – v0.39.x 内嵌 Jetty 9.4.32.v20200930

    如果使用 metabase v0.36.8 及以上,不存在安全漏洞。否则,会报安全漏洞。启动时设置个假的版本号,可以避免安全扫描工具报错。

    $ java -Djetty.version=9.4.30.v20200611 -jar metabase.jar
    

    案例 2:jenkins

    Jenkins 是常用的持续构建工具,内嵌了 jetty 作为应用服务器。

    以 Jenkins v2.277.4 版本(内嵌的 jetty 版本是 9.4.39.v20210325)为例,启动 Jenkins

    $ java -jar Jenkins.war
    

    访问jenkins站点,查看 jetty 版本,返回 9.4.39.v20210325
    在这里插入图片描述
    启动命令中加上 jetty.version 参数后,启动

    $ java -Djetty.version=9.4.17 -jar Jenkins.war
    

    访问jenkins站点,查看 jetty 版本。
    在这里插入图片描述

    展开全文
  • 1.6.2 安全漏洞披露方式  针对漏洞的公开披露策略与道德准则,在安全社区中曾爆发无数次的辩论,归纳起来,主要有如下四种主要的安全漏洞披露方式。 (1) 完全公开披露  发现漏洞后直接向公众完全公开安全漏洞...
  • 绿盟web安全漏洞扫描器管理客户端,批量下发任务、导出报告,适用于绿盟漏洞扫描器 Python的脚本(运行环境Python)。
  • 移动客户端安全漏洞等级划分

    千次阅读 2018-10-28 15:44:08
    移动客户端安全漏洞等级划分 移动客户端安全漏洞等级划分 我们将漏洞危害程度分为:严重、高危、中危、低危、无危险五个等级。其中定义移动客户端安全漏洞为以Flyme为核心的移动客户端安全漏洞。包括Flyme系统、...
  • 关于rabbitmq安全漏洞的问题

    万次阅读 2017-02-17 09:48:46
    而最近呢,我们收到了一份关于安全漏洞扫描的文档,说我们的rabbitmq存在着一些安全漏洞问题,既然是有问题,自然是需要整改的,但是看完文档以后,发现这种安全漏洞问题似乎并不是很好解决。 文档中指出的问题主要...
  • 常见Web安全漏洞

    万次阅读 2021-03-07 09:14:37
    常见Web漏洞小结 1越权漏洞 不同权限账户之间的存在越权访问 检测 抓去a用户功能链接,然后登录b用户对此链接进行访问 抓去a用户功能链接,修改id为b的id,查看是否能看b的相关数据 替换不同的cookie进行测试查看 ...
  • Web 应用安全漏洞原理及测试技术1 SQL注入漏洞  任意文件上传漏洞  任意文件下载漏洞  文件包含漏洞  XSS跨站脚本漏洞  CSRF跨站请求伪造漏洞  逻辑漏洞
  • 过去外界曾抨击NSA隐匿安全漏洞,只为追求网络间谍与攻击的做法罔顾广大用户的权益,才使得这次NSA主动向微软通报安全漏洞的事件跃上媒体标题。 CVE-2020-0601漏洞位于Window的加密组件CryptoAPI。 CryptoAPI是微软...
  • Openfire TLS Client-initiated重协商安全漏洞(CVE-2011-1473),怎么样解决,openfire4.2.3最新版本也有这个安全漏洞
  • APPScan安全漏洞扫描

    千次阅读 2018-04-16 20:07:02
    IBM AppScan是一款非常好用且功能强大的Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界,Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见的 Web 应用安全漏洞,例如 ...
  • 三个安全漏洞问题为scp相关问题,出现在openssh-client。 解决办法: 目前发现成功解决该问题的方式是在openssh官网中找到,官网于4月26日发布最新OpenSSH 8.0版本中提到: 原引:...
  • 下面是根据笔者从事软件代码安全检测工作的经验以及对开源组件、第三库安全漏洞检测工具的市场调研所获得的资料,如有错误或不妥之处,还请各位指正。如果表格中有一些未知信息你了解,请给帮我补充。让我们更多的...
  • 曾因发现DNS安全漏洞的著名黑客Dan Kaminsky被爆去世,年仅42岁。黑客圈因此一片哗然。身为各大黑客会议常客的他,除了DNS漏洞事件,他还是调查2005年Sony Rootkit感染丑闻的关键人物之一。 网络安全界的一颗巨星...
  • 解密智能合约TOP10安全漏洞

    万次阅读 2018-11-22 15:26:19
    以下都是来自我的新作《解密EVM机制及合约安全漏洞》里的内容 电子版PDF下载:https://download.csdn.net/download/softgmx/10800947   重入问题 漏洞成立的条件: 合约调用带有足够的gas 有转账功能...
  • Linux Centos7 OpenSSH版本低导致的安全漏洞升级OpenSSH和OpenSSl来修复漏洞 由于最近公司项目需要重新部署到服务器,检查出的安全漏洞,其中一项就是Openssh版本低过低所以导致的远程执行漏洞,如下: 于是我...
  • JIRA插件ScriptRunner安全漏洞SRPLAT-876

    万次阅读 2020-01-26 16:33:00
    定制开发JIRA经常用到的ScriptRunner插件,近日修复了一个远程代码执行安全漏洞SRPLAT-876,建议大家赶快升级。 JIRA Server和Data Center都受影响。 Script Runner for JIRA受影响版本:5.1.0 到 5.6.11.2-p5 ...
  • Android手机App安全漏洞整理

    千次阅读 2017-03-07 23:04:09
    APP安全漏洞整理 1.源码安全漏洞 1.1 代码混淆漏洞 当前APK文件的安全性是非常令人堪忧的。APK运行环境依赖的文件/文件夹 res、DEX、主配文件Lib 只有简单的加密或者甚至没有任何加密。诸如apktool这类工具可轻易...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 266,803
精华内容 106,721
关键字:

安全漏洞