概述

从上一版的第 6 位开始,90% 的应用程序都经过了某种形式的错误配置测试。随着更多转向高度可配置的软件,看到这一类别上升也就不足为奇了。值得注意的CWE包括CWE-16 ConfigurationCWE-611 Improper Restriction of XML External Entity Reference

CWE-16 Configuration

此条目是一个类别,但尽管 CWE 指导不应映射类别,但无论如何都有各种来源映射到它。在这种情况下,没有可以利用的明确的 CWE 弱点。“不适当的配置”可能更好地描述为弱点,因此此条目可能会在更高版本中转换为弱点。然而,需要进一步研究,因为“配置弱点”可能是许多其他 CWE 的主要因素,即,它可能更适合用链接关系来描述。

描述

如果应用程序是:

  • 在应用程序堆栈的任何部分缺少适当的安全强化或对云服务的权限配置不正确。

  • 启用或安装了不必要的功能(例如,不必要的端口、服务、页面、帐户或权限)。

  • 默认帐户及其密码仍处于启用状态且未更改。

  • 错误处理向用户显示堆栈跟踪或其他信息过多的错误消息。

  • 对于升级的系统,最新的安全功能被禁用或未安全配置。

  • 应用程序服务器、应用程序框架(例如,Struts、Spring、ASP.NET)、库、数据库等中的安全设置未设置为安全值。

  • 服务器不发送安全标头或指令,或者它们未设置为安全值。

  • 软件已过时或易受攻击(请参阅 A06:2021-易受攻击和过时的组件)。

如果没有协调一致的、可重复的应用程序安全配置过程,系统将面临更高的风险。

XML的学习

XML由3个部分组成,DTD(文档类型定义),是XML的布局语言;XSL(可扩展的样式语言),XML的样式表语言;和可扩展链接语言 XLL。

XML:可扩展标记语言,是一种用来标记电子文件使其具有结构性的标记语言。用来传输和存储数据,这类语言很像超文本标记语言的标记语言。设计出来就是为了传输数据,而不是显示数据  ,他需要自行定义标签。

可扩展标记语言(XML)和超文本标记语言(HTML)为不同的目的而设计

它被设计用来传输和存储数据,其焦点是数据的内容。

HTML 超文本标记语言被设计用来显示数据,其焦点是数据的外观

XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素

<?xml version="1.0" encoding="UTF-8"?>

<!-- XML声明 -->

<!DOCTYPE  文件名 [

<!ENTITY实体名 "实体内容">

]>

<!-- 文档类型定义(DTD) -->

<元素名称 category="属性">

文本或其他元素

</元素名称>

<!-- 文档元素 -->

比如:

XML的实体

在XML钟的实体分为五种:字符实体,命名实体,参数实体,外部实体和内部实体。

普通的实体分为外部和内部两种,外部实体定义需要加上SYSTEM关键字,内容就是URL所指向的外部文件实际的内容。如果不加则代表内部实体,所指代的内容为字符串。

1.字符实体

说的是用十进制格式或者十六进制格式来指定任意的unicode字符,而对于XML解析器而言,字符实体与直接输入指定字符的效果完全相同。

2.命名实体

也叫做内部实体,在DTD(在文档中<!DOCTYPE>语句的一部分)中声明,在文档中作引用。

3.外部实体

外部实体表示外部文件的内容,用SYSTEM关键字表示。

<!ENTITY test SYSTEM "test.xml">

有些XML文档包含system标识符定义的“实体”,这些文档会在DOCTYPE头部标签中呈现。这些定义的’实体’能够访问本地或者远程的内容。比如,下面的XML文档样例就包含了XML ‘实体’。

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE Anything [

<!ENTITY entityex SYSTEM "file:///etc/passwd">

]>

<abc>&entityex;</abc>

注:URI,统一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行标识的。

URL是URI的一个子集。

外部实体'entityex'被赋予的值为:file://etc/passwd  在解析XML文档的过程中实体'entityex'的值回被替换为URI(file://etc/passwd)

关键字SYSTEM会告诉XML解析器,entityex实体的值将从其后的URI中读取,并把读取的内容替换entityex出现的地方。

假如 SYSTEM 后面的内容可以被用户控制,那么用户就可以随意替换为其他内容,从而读取服务器本地文件(file:///etc/passwd)或者远程文件,甚至是内网攻击,也就是XXE漏洞了。

 

OWASP-Top5-(Security Misconfiguration 安全配置错误)的更多相关文章

  1. jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限

    jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限 由于初次接触jenkins,于是在搭建好jenkins以后,想要对用户进行管理,于是乎开始在系统管理->conf ...

  2. 【阿里聚安全·安全周刊】阿里双11技术十二讲直播预约|AWS S3配置错误曝光NSA陆军机密文件

    关键词:阿里双11技术十二讲直播丨雪人计划丨亚马逊AWS S3配置错误丨2018威胁预测丨MacOS漏洞丨智能风控平台MTEE3丨黑客窃取<权利的游戏>剧本|Android 8.1   本 ...

  3. linux异常处理:selinux配置错误导致无法重启

    点击返回自学Linux集锦 linux异常处理:selinux配置错误导致无法重启 一次linux无法重启异常记录: 当时第一反应就是梳理最近的配置变更,特别是能预知相关的就是selinux配置变更. ...

  4. spring boot rest 接口集成 spring security(2) - JWT配置

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  5. Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误——SHH框架

    SHH框架工程,Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误 1.查看配置文件web.xml中是否配置.or ...

  6. Linux在fstab中因配置错误导致服务器主机无法重启的问题应该如何解决

    fstab中配置错误导致系统无法启动的恢复方案 1制造错误的案例发生,在/etc/fstab中配置如下内容 结尾的倒数第一个为1表示进行磁盘检查,为0表示不进行磁盘检查,倒数第二个为0表示不备份,为1 ...

  7. log4Net不能成功生成日志问题(关于配置错误)

    log4Net不能成功生成日志问题(关于配置错误) 调试发现问题原因在于  Log4Net IsInfoEnabled 一直为 false,返回的对象中所有 IsXXX 一直为false,这个问题的原 ...

  8. C# 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节

    一项目直接在VS里面,调试就可以正常运行.但部署到IIS下就提示,配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节 ...

  9. iis7.5错误 配置错误

    iis7.5详细错误   HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息模块 IIS Web Core 通知 ...

随机推荐

  1. Spring中IOC的理解

    Spring中IOC的理解 1.什么是IOC? (1)控制反转.把对象创建和对象间的调用过程交给Spring进行管理. (2)使用IOC的目的:为了耦合度降低. 2.IOC底层原理? (1)xml解析 ...

  2. 移动端多个DIV简单拖拽功能

    移动端多个DIV简单拖拽功能. 这个demo与之前写的一个例子差不了多少,只是这个多了一层遍历而已. <!DOCTYPE html> <html lang="en" ...

  3. 都 2021 年了,Serverless 能取代微服务吗?

    来源 | Serverless 公众号 编译 | OrangeJ 作者 | Mariliis Retter "Serverless 能取代微服务吗?" 这是知乎上 Serverle ...

  4. 双系统升win11(grub启动问题修复与讲解)?!?

    起 最近win11不是出来了吗.(着急修复的可以直接跳到最后一步) 于是我就突发奇想给我半年没进去的windows升个级........ 于是我找到了我win11的升级包(从我一个同学哪儿) 工具都集 ...

  5. 这么多TiDB负载均衡方案总有一款适合你

    [是否原创]是 [首发渠道]TiDB 社区 前言 分布式关系型数据库TiDB是一种计算和存储分离的架构,每一层都可以独立地进行水平扩展,这样就可以做到有的放矢,对症下药. 从TiDB整体架构图可以看到 ...

  6. JVM详解(六)——对象的实例化、内存布局与访问定位

    一.对象的实例化 1.创建对象的方式 2.创建对象的步骤 脑图:https://www.processon.com/view/link/61701a927d9c087040525226 3.对象属性赋 ...

  7. Java:并发笔记-06

    Java:并发笔记-06 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 5. 共享模型之无锁 本章内容 CAS 与 volatile 原子整数 原子引用 原子 ...

  8. elasticsearch使用ik中文分词器

    elasticsearch使用ik中文分词器 一.背景 二.安装 ik 分词器 1.从 github 上找到和本次 es 版本匹配上的 分词器 2.使用 es 自带的插件管理 elasticsearc ...

  9. netty传输java bean对象

    在上一篇博客(netty入门实现简单的echo程序)中,我们知道了如何使用netty发送一个简单的消息,但是这远远是不够的.在这篇博客中,我们来使用netty发送一个java bean对象的消息,但是 ...

  10. pyinstaller和wordcloud和jieba的使用案列

    一.pyinstaller库 1.简介 pyinstaller库:将脚本程序转变为可执行(.exe)格式的第三方库 注意:需要在.py文件所在目录进行以下命令,图标扩展名是.ico 2.格式: pyi ...