安全面试2

文章目录

  • 简单描述一下什么是水平越权,什么是垂直越权,我要发现这两类漏洞,那我代码审计要注意什么地方
    • 水平越权:
    • 垂直越权:
    • 水平越权漏洞的审计重点
    • 垂直越权漏洞的审计重点
  • 解释一下ssrf
    • 漏洞原理
    • 攻击场景
    • 修复方法
  • 横向移动
  • 提权
    • win权限提升
    • Linux权限提升
  • include 和 require区别
  • 绕waf的常见姿势
  • log4g
  • 有哪些混淆绕过的方法
  • 文件上传绕过
  • XSS绕过
  • 内存马
    • 常见实现方式:
    • 内存马的特点
    • 内存马的检测

简单描述一下什么是水平越权,什么是垂直越权,我要发现这两类漏洞,那我代码审计要注意什么地方

水平越权:

用户能够访问或操作其他同级用户的资源或数据。

垂直越权:

低权限用户能够访问或操作高权限用户的功能或资源。

水平越权漏洞的审计重点

  1. 检查涉及用户数据的接口(如/user/profile?id=123),确保当前用户只能访问自己的数据。
  2. 查找是否直接使用用户提供的参数(如用户ID)查询数据库,而未验证其权限。

垂直越权漏洞的审计重点

  1. 检查涉及管理员功能的接口(如/admin/delete_user),确保只有管理员可以访问。
  2. 查找是否缺少对用户角色的验证。

解释一下ssrf

漏洞原理

攻击者通过构造恶意URL,让服务器访问内部系统(如数据库、管理后台)或外部资源,从而获取敏感信息或执行恶意操作。

攻击场景

  1. 访问内部服务:
    攻击者让服务器访问内网服务(如http://127.0.0.1:8080/admin),获取敏感信息。
  2. 绕过防火墙:内网服务通常对外不可访问,但通过SSRF,攻击者可以绕过防火墙限制。
  3. 文件读取:利用file://协议读取服务器本地文件(如file:///etc/passwd)。
  4. 端口扫描:通过SSRF探测内网开放的端口和服务。

修复方法

  1. 限制协议:
    只允许HTTP/HTTPS协议,禁止file://、gopher://等危险协议。
  2. 白名单校验:
    只允许访问特定的域名或IP地址。
  3. 禁用重定向:
    防止攻击者通过重定向访问内部资源。
  4. 使用DNS解析:
    解析URL的域名,确保其指向允许的外部地址,而不是内网IP。

横向移动

在内⽹渗透中,当攻击者获取到内⽹某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种⽅法,访问域内其他机器,进⼀步扩⼤资产范围。通过横向,攻击者最终获得域控制器的访问权限,甚⾄完全控制基于Windows操作系统的整个内⽹环境,控制域环境下的全部机器。

提权

win权限提升

在这里插入图片描述

Linux权限提升

在这里插入图片描述

include 和 require区别

include会执行多次,导致报错(重复定义变量)。。而include_once不会出现这种情况。
require和include区别在于:若未包含文件,则报错形式不一样。(require包含错误文件,则include后不
再执行;include未包含文件,会警告,但是仍会执行后面的。)

绕waf的常见姿势

  1. 混淆和编码:Base64 编码
    ,URL 编码,Unicode 编码,Hex 编码:将 payload 转换为十六进制,双重编码
  2. 大小写混淆:WAF 的规则可能是大小写敏感的,通过改变 payload 的大小写可以绕过检测。
  3. 注释符混淆:在 SQL 注入中,使用注释符(如 /* */、–)可以绕过 WAF 的检测。
  4. 分块传输编码:利用 HTTP 分块传输编码(Chunked Transfer Encoding)绕过 WAF 的检测。
  5. HTTP 参数污染(HPP):通过重复提交参数,使 WAF 无法正确解析参数值。
  6. 使用非常规 HTTP 方法:使用 PUT、DELETE、OPTIONS 等方法。
  7. 利用 WAF 的规则盲区:超长 payload:WAF 可能对超长 payload 的检测不严格。
    特殊字符:使用 WAF 未检测的特殊字符。
    多语言 payload:使用非 ASCII 字符。
  8. 时间延迟绕过:在 SQL 注入中,使用时间延迟函数(如 SLEEP())绕过 WAF 的检测。
  9. 利用 WAF 的缓存机制:WAF 可能缓存某些请求,通过构造特殊请求绕过检测。

log4g

Log4j是Java开发中广泛使用的日志记录框架,攻击者可以通过构造恶意日志消息触发远程代码执行,从而完全控制目标服务器
漏洞原理
Log4j2支持Lookup功能,允许在日志中动态解析变量(如${java:os})。

攻击者可以通过输入类似${jndi:ldap://恶意地址/攻击代码}的字符串,触发Log4j2向远程服务器请求并执行恶意代码。

由于Log4j2的递归解析特性,攻击者无需特殊配置即可利用该漏洞
修复
删除JndiLookup.class文件,禁用JNDI功能

有哪些混淆绕过的方法

  1. 变量名混淆:将变量名替换为无意义的随机字符串。
  2. 字符串加密:将字符串加密或编码,运行时解密。
  3. 控制流混淆:改变代码的执行顺序,增加跳转和条件判断。
  4. 代码拆分:将代码拆分为多个部分,运行时动态拼接。

文件上传绕过

  1. 文件类型伪装:修改文件扩展名或MIME类型。
  2. 文件内容混淆:在文件中插入垃圾数据或修改文件头。
  3. 多文件上传:通过上传多个文件,利用服务器解析差异绕过检测。

XSS绕过

  1. 标签混淆:使用非常规的HTML标签或属性。
  2. 事件混淆:使用不同的事件触发XSS。
  3. 编码绕过:对XSS代码进行HTML编码或JavaScript编码。

内存马

内存马的核心思想是通过修改目标应用程序的内存数据(如Servlet、Filter、Controller等),动态注入恶意代码,从而在服务器内存中创建一个隐蔽的后门。

常见实现方式:

  1. Servlet内存马:通过动态注册一个恶意的Servlet,处理特定请求。
  2. Filter内存马:通过动态注册一个恶意的Filter,拦截所有请求。
  3. Controller内存马:在Spring等框架中,动态注册一个恶意的Controller。
  4. Agent内存马:通过Java Agent技术,动态修改类的字节码。

内存马的特点

无文件落地,隐蔽性强,持久化,高权限:

内存马的检测

内存分析,行为监控,流量分析

XXE
XXE漏洞的成因
XXE漏洞的核心问题是XML解析器在处理外部实体时未进行严格限制,导致攻击者可以通过构造恶意XML文档实现以下攻击:

  1. 读取服务器上的任意文件。
  2. 发起SSRF(服务器端请求伪造)攻击。
  3. 执行远程代码(在某些情况下)。
    修复XXE漏洞的核心是禁用外部实体解析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux 专栏】echo命令实验

风123456789~-CSDN博客 最近文章阅读排行榜 【爬虫基础】第一部分 网络通讯 P1/3-CSDN博客 【爬虫基础】第一部分 网络通讯-Socket套接字 P2/3-CSDN博客 【Linux专栏】find命令同步 实验-CSDN博客 【Linux运维】非root用户的单向免密登录_linux 单向免密-CSDN博客…

RTSP协议全解析

RTSP(Real Time Streaming Protocol)协议全解析 一、协议概述 定位:应用层协议,用于控制流媒体服务器(播放、暂停、录制),媒体传输由 RTP/RTCP 实现。 特点: 基于文本(…

第15届 蓝桥杯 C++编程青少组中/高级选拔赛 202401 真题答案及解析

第 1 题 【 单选题 】 表达式117 % 16 的结果是( )。 A:0 B:5 C:7 D:10 解析: % 是取模运算符,用于计算两个数相除后的余数。 计算 117 / 16,结果是 7,余数是 5。因此,117 % 16 = 5。答案: B 第 2 题 【 单选题 】 下列选项中,字符数组定义正确的是( …

qt5实现表盘的旋转效果,通过提升QLabel类

因为工作需要,需要实现温度的表盘展示效果 实现思路: 通过提示声QLabel控价类,实现报盘的旋转和展示效果 1. 编写一个QLabel的类MyQLabel,实现两个方法 1. void paintEvent(QPaintEvent *event); //重绘函数 2. void valueChanged(int va…

通信系统中物理层与网络层联系与区别

在通信系统中,物理层和网络层是OSI(开放系统互连)模型中的两个重要层次,分别位于协议栈的最底层和第三层。它们在功能、职责和实现方式上有显著的区别,但同时也在某些方面存在联系。以下是物理层与网络层的联系与区别的…

【深度学习】Pytorch的深入理解和研究

一、Pytorch核心理解 PyTorch 是一个灵活且强大的深度学习框架,广泛应用于研究和工业领域。要深入理解和研究 PyTorch,需要从其核心概念、底层机制以及高级功能入手。以下是对 PyTorch 的深入理解与研究的详细说明。 1. 概念 动态计算图(D…

23种设计模式 - 解释器模式

模式定义 解释器模式(Interpreter Pattern)是一种行为型设计模式,用于为特定语言(如数控系统的G代码)定义文法规则,并构建解释器来解析和执行该语言的语句。它通过将语法规则分解为多个类,实现…

使用 Openpyxl 操作 Excel 文件详解

文章目录 安装安装Python3安装 openpyxl 基础操作1. 引入2. 创建工作簿和工作表3. 写入数据4. 保存工作簿5. 加载已存在的Excel6. 读取单元格的值7. 选择工作表 样式和格式化1. 引入2. 设置字体3. 设置边框4. 填充5. 设置数字格式6. 数据验证7. 公式操作 性能优化1. read_only/…

nigix面试常见问题(2025)

一、Nginx基础概念 1. 什么是Nginx? Nginx是一款高性能的HTTP/反向代理服务器及IMAP/POP3/SMTP代理服务器,由俄罗斯工程师Igor Sysoev开发。其核心优势在于事件驱动架构与异步非阻塞处理模型,能够高效处理高并发请求(如C10K问题),广泛应用于负载均衡、静态资源服务、AP…

002 SpringCloudAlibaba整合 - Feign远程调用、Loadbalancer负载均衡

前文地址: 001 SpringCloudAlibaba整合 - Nacos注册配置中心、Sentinel流控、Zipkin链路追踪、Admin监控 文章目录 8.Feign远程调用、loadbalancer负载均衡整合1.OpenFeign整合1.引入依赖2.启动类添加EnableFeignClients注解3.yml配置4.日志配置5.远程调用测试6.服务…

代码审计入门学习之sql注入

路由规则 入口文件&#xff1a;index.php <?php // ---------------------------------------------------------------------- // | wuzhicms [ 五指互联网站内容管理系统 ] // | Copyright (c) 2014-2015 http://www.wuzhicms.com All rights reserved. // | Licensed …

React实现自定义图表(线状+柱状)

要使用 React 绘制一个结合线状图和柱状图的图表&#xff0c;你可以使用 react-chartjs-2 库&#xff0c;它是基于 Chart.js 的 React 封装。以下是一个示例代码&#xff0c;展示如何实现这个需求&#xff1a; 1. 安装依赖 首先&#xff0c;你需要安装 react-chartjs-2 和 ch…

线程与进程的深入解析及 Linux 线程编程

在操作系统中&#xff0c;进程和线程是进行并发执行的两种基本单位。理解它们的区别和各自的特点&#xff0c;能够帮助开发者更好地进行多任务编程&#xff0c;提高程序的并发性能。本文将探讨进程和线程的基础概念&#xff0c;及其在 Linux 系统中的实现方式&#xff0c;并介绍…

全面指南:使用JMeter进行性能压测与性能优化(中间件压测、数据库压测、分布式集群压测、调优)

目录 一、性能测试的指标 1、并发量 2、响应时间 3、错误率 4、吞吐量 5、资源使用率 二、压测全流程 三、其他注意点 1、并发和吞吐量的关系 2、并发和线程的关系 四、调优及分布式集群压测&#xff08;待仔细学习&#xff09; 1.线程数量超过单机承载能力时的解决…

springboot整合mybatis-plus【详细版】

目录 一&#xff0c;简介 1. 什么是mybatis-plus2.mybatis-plus特点 二&#xff0c;搭建基本环境 1. 导入基本依赖&#xff1a;2. 编写配置文件3. 创建实体类4. 编写controller层5. 编写service接口6. 编写service层7. 编写mapper层 三&#xff0c;基本知识介绍 1. 基本注解 T…

HTTP 常见状态码技术解析(应用层)

引言 HTTP 状态码是服务器对客户端请求的标准化响应标识&#xff0c;属于应用层协议的核心机制。其采用三位数字编码&#xff0c;首位数字定义状态类别&#xff0c;后两位细化具体场景。 状态码不仅是服务端行为的声明&#xff0c;更是客户端处理响应的关键依据。本文将从协议规…

Unity中的键位KeyCode

目录 主要用途 检测按键事件&#xff1a; 处理键盘输入&#xff1a; 基本键位 常用键&#xff1a; 字母键&#xff1a; 数字键&#xff1a; 功能键&#xff1a; 方向键&#xff1a; 控制键&#xff1a; 鼠标键&#xff1a; 其他特殊键&#xff1a; 代码示例 按下…

高考或者单招考试需要考物理这科目

问题&#xff1a;帮忙搜索一下以上学校哪些高考或者单招考试需要考物理这科目的 回答&#xff1a; 根据目前获取的资料&#xff0c;明确提及高考或单招考试需考物理的学校为湖南工业职业技术学院&#xff0c;在部分专业单招时要求选考物理&#xff1b;其他学校暂未发现明确提…

【设计模式】 代理模式(静态代理、动态代理{JDK动态代理、JDK动态代理与CGLIB动态代理的区别})

代理模式 代理模式是一种结构型设计模式&#xff0c;它提供了一种替代访问的方法&#xff0c;即通过代理对象来间接访问目标对象。代理模式可以在不改变原始类代码的情况下&#xff0c;增加额外的功能&#xff0c;如权限控制、日志记录等。 静态代理 静态代理是指创建的或特…

Redis 限流

Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface AccessLimit {/*** 限制次数*/int count() default 15;/*** 时间窗口&#xff0c;单位为秒*/int seconds() default 60; }Aspect Component public class AccessLimitAspect {private static …