ncist网络空间安全专业护网方向认知实习笔记2021.12 DAY 8

本文主要是介绍ncist网络空间安全专业护网方向认知实习笔记2021.12 DAY 8,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

note

XML注入

什么是XML注入

又叫XML实体注入,XML External Entity attack(XXE)

XML injection,XML注入漏洞。

XML注入类似于SQL注入,XML文件一般用作存储数据及配置,如果在修改或新增数据时,没有对用户可控数据做转义,直接输入或输出数据,都将导致XML注入漏洞的产生。

  • 有的服务器会通过生成XML来达到存储信息(可能是用户个人信息酱紫的东西)
  • 举个栗子

在这里插入图片描述

正常情况下服务器存储的数据是酱紫的:

<?xml version="1.0" encoding="UTF-8"?>
<USER role="guest"><name>xlydm</name><passwd>12345</passwd>
</USER>
<USER role="admin"><name>admin</name><passwd>202cb962ac59075b964b07152d234b70</passwd>
</USER>

那么这种情况下用户guest传入的密码就是酱紫的:

12345

那么这个用户他要是脑洞大开,传入的密码是这样的呢?

12345</passwd></USER><USER role="admin"><name>admin</name><passwd>123456</passwd></USER><!-- 

是不是有点熟悉?那么咱们加个xml高亮再看看

12345</passwd></USER><USER role="admin"><name>admin</name><passwd>123456</passwd></USER><!-- 

emmmm这样插入之后的文件内容就变成了这样:

<?xml version="1.0" encoding="UTF-8"?>
<USER role="guest"><name>xlydm</name><passwd>12345</passwd>
</USER>
<USER role="admin"><name>admin</name><passwd>123456</passwd>
</USER><!-- 
</passwd>
</USER>
<USER role="admin"><name>admin</name><passwd>202cb962ac59075b964b07152d234b70</passwd>
</USER>

事情开始变得微妙了起来

防御方法

防御XML注入的思路和SQL和XSS类似,主要还是字符串过滤以及用户权限的限制

远程文件包含漏洞

定义

  • 这种问题大多出现在php中,JSP和ASP则较为少见
  • 程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为包含。在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入。
  • 如果PHP的配置选项allow_url_include为ON的话,则include/require函数是可以加载远程文件的,这种漏洞被称为远程文件包含漏洞。
  • PHP常见的导致文件包含的函数如下:
    • include()
    • include_once
    • require()
    • require_once()
    • fopen()
    • readfile()

防御方法

php.ini文件及时关闭allow_url_fopen和allow_url_include

禁止用户直接输入源码,而可以用一些简单字符(比如说1、2、3、a、b、c等)

本地文件包含漏洞

(有点像文件上传漏洞)

四种攻击方式:

  1. 在URL中包括了一个文件:简单级别
  2. Null Byte:高安全级别,本地文件包含攻击不能工作的。对服务器中的一些敏感目录、敏感文件进行攻击也是通过URL进行攻击
  3. PHP函数:Base64 encoded转码进行攻击
  4. 利用PHP INPUT 函数:通过注入PHP代码来利用LFI漏洞,加载目标URL

命令执行漏洞

  1. PHP函数:Base64 encoded转码进行攻击
  2. 利用PHP INPUT 函数:通过注入PHP代码来利用LFI漏洞,加载目标URL

命令执行漏洞

这篇关于ncist网络空间安全专业护网方向认知实习笔记2021.12 DAY 8的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/623446

相关文章

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

99%的人都选错了! 路由器WiFi双频合一还是分开好的专业解析与适用场景探讨

《99%的人都选错了!路由器WiFi双频合一还是分开好的专业解析与适用场景探讨》关于双频路由器的“双频合一”与“分开使用”两种模式,用户往往存在诸多疑问,本文将从多个维度深入探讨这两种模式的优缺点,... 在如今“没有WiFi就等于与世隔绝”的时代,越来越多家庭、办公室都开始配置双频无线路由器。但你有没有注

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Java中常见队列举例详解(非线程安全)

《Java中常见队列举例详解(非线程安全)》队列用于模拟队列这种数据结构,队列通常是指先进先出的容器,:本文主要介绍Java中常见队列(非线程安全)的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一.队列定义 二.常见接口 三.常见实现类3.1 ArrayDeque3.1.1 实现原理3.1.2

电脑软件不能安装到C盘? 真相颠覆你的认知!

《电脑软件不能安装到C盘?真相颠覆你的认知!》很多人习惯把软件装到D盘、E盘,刻意绕开C盘,这种习惯从哪来?让我们用数据和案例,拆解背后的3大原因... 我身边不少朋友,在使用电脑安装软件的时候,总是习惯性的把软件安装到D盘或者E盘等位置,刻意避开C盘。如果你也有这样的习惯,或者不明白为什么要这么做,那么我

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解