当前位置: 首页 > article >正文

安全面试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.kler.cn/a/558137.html

相关文章:

  • 单例模式代码示例
  • 力扣LeetCode:2595 奇偶位数
  • 根据音频中的不同讲述人声音进行分离音频 | 基于ai的说话人声音分离项目
  • 编译原理基础(1)
  • 语义向量模型全解:从基础到现在的deepseek中的语义向量主流模型
  • 【核心算法篇二十】《DeepSeek符号回归:让AI化身「数学神探」破解数据背后的宇宙公式》
  • go flag参数 类似Java main 的args
  • 报错:Cannot read properties of null (reading ‘ce‘)解决方法
  • MyBatisPlus学习
  • Python在实际工作中的运用-Excel数据统计和数据分析
  • 网页制作06-html,css,javascript初认识のhtml如何建立超链接
  • 怎样从零基础开始学习大模型
  • oppo,汤臣倍健,康冠科技,高途教育25届春招内推
  • go基本语法
  • MySQL 成本优化器 (CBO) 深度解析
  • hi3516cv610的isp调试专业名词
  • 如何使用3D高斯分布进行环境建模
  • MySQL后端返回给前端的时间变了(时区问题)
  • 机器学习(李宏毅)——RL(强化学习)
  • Moving Assets/KrishnaPalacio to Assets/Resources: 拒绝访问。