概述

从上一版的第 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. UE4蓝图AI角色制作(三)

    接上一节 6. 寻路网格体代理 通过允许配置多个"代理",虚幻引擎使得用户能够轻松为大小各异的AI创建寻路网格体.首先,选中世界大纲视图中的"RecastNavMesh& ...

  2. CefSharp基于.Net Framework 4.0 框架编译

    CefSharp基于.Net Framework 4.0 框架编译 本次源码使用的是Github上CefSharp官方的79版本源码 准备 IDE Visual Studio 2017 Enterpr ...

  3. 题解 AVL 树

    link Description 给出一个 \(n\) 个点的 AVL 树,求保留 \(k\) 个点使得字典序最小. \(n\le 5\times 10^5\) Solution 因为我很 sb ,所 ...

  4. 题解 [HNOI2012]集合选数

    题目传送门 题目大意 直接看题面吧. 思路 感觉挺水的一道题啊?怎么评到紫色的啊?考试的时候LJS出了这个题的加强版我就只想出这个思路,然后就爆了... 不难发现,我们可以构造矩阵: x 2x 4x ...

  5. CF123E Maze(期望dp,树形dp,式子)

    题目大意: 给你一棵树,边权都是1,每一个点有一个是起点的概率和一个是终点的概率,你将以起点为根,开始在树上随机dfs,每到一个点,就会将他的所有儿子随机打乱成序列,然后按照那个随机顺序走完,直到走到 ...

  6. python-docx处理Word必备工具

      我的理解 为什么会用到python-docx,因为近段时间下载了大量网文,但格式都是html的,我个人习惯使用word处理文字,于是就想法设法把html文档转换为word,首先要考虑的问题就是从h ...

  7. 【错误分析】NX error status: 32

    在进行NX 制图里面的表格注释合并单元格时,总是报错NX error status: 32,找了很久都不知道问题所在. 报错提示如下: NXOpen.NXException: NX error sta ...

  8. 从零开始的Spring Session(一)

    Session和Cookie这两个概念,在学习java web开发之初,大多数人就已经接触过了.最近在研究跨域单点登录的实现时,发现对于Session和Cookie的了解,并不是很深入,所以打算写两篇 ...

  9. Unity 3D手游对不同分辨率屏幕的UI自适应

    目前安卓手机的屏幕大小各异,没有统一的标准,因此用Unity 3D制作的手游需要做好对不同分辨率屏幕的UI自适应,否则就会出现UI大小不一和位置错位等问题. 我们的项目在开发时的参照分辨率(Refer ...

  10. Linux中检查字符串是否为合法IP地址的shell脚本

    #!/bin/bash #判断IP地址是否为有效IP CHKECK_IP () { CHECK_STEP1=`echo $1 | awk -F"." '{print NF}'` i ...