腾讯 PCG 安全技术岗实习一面面经
- 轮次
- 一面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 是否了解 PCG 的安全业务主要做什么?
- 甲方企业的整体安全应该怎么做,需要注意什么?
- 介绍一下你的个人研究方向?
- 挑两个 OWASP Top 10 漏洞讲讲?
- 为什么项目中挖到的 SQL 注入点(邮箱登录框)只能用盲注?有没有别的方法?
- SQL 注入的防护措施有哪些?
- 预编译有什么局限?
- 详细讲讲简历项目中遇到的越权访问以及逻辑漏洞?
- QQ 空间这类业务怎么挖逻辑漏洞?
- 黄钻功能可能有什么逻辑漏洞?
- 除了黑盒渗透,你了解白盒吗?
- 一个工程项目的代码白盒审计思路是怎样的?
- 简历里开发的项目架构是怎么样的?
- 了解 AI 安全相关的内容吗?
- 平时用什么 AI 工具、什么模型?
反问环节
- 在 AI 时代,甲方公司的安全人员比较看重学生的哪些方面?
- 你对我的求职找实习有什么建议?
《参考解析》
为什么有些注入点只剩盲注,以及还有什么路。 邮箱登录框只能用盲注,根子在信道太窄:登录逻辑对外只回「成功/失败」两种状态,既不回显查询结果,也不回显数据库报错。没有回显位,联合查询(union select)就没地方吐数据;没有报错信息,报错注入也无从下手;剩下能观察的只有「真/假」和「响应时间」两个信道,也就是布尔盲注与时间盲注。要跳出盲注,思路是换信道而不是换 payload:一是想办法让数据库自己报错并把内容带出来(函数类型不匹配、extractvalue/updatexml 这类会回显错误的函数,前提是错误页可见);二是堆叠查询配合写文件、写日志,或 LOAD_FILE 走带外(DNS/HTTP 外带,要求数据库能出网);三是绕过这个点,去找同一条数据链路上回显更足的位置,比如注册、找回密码、订单查询、后台导出,这些位置往往有回显或报错;四是二阶注入——先把 payload 存进库,等后台某个查询或报表再取出来拼接时触发,此时回显条件完全不同。答题时把「为什么只能盲注」讲成数据传输通道的判断,比背盲注脚本更能体现理解。
预编译能挡什么、挡不住什么。 预编译(参数化查询)把 SQL 的语法结构和数据值分两次发给数据库,值永远被当成字面量,因此经典的单引号闭合注入被彻底堵死,而且还有执行计划复用的性能收益。但它的保护范围只在「数据位」,凡是要拼进语法位的东西它都管不了:表名、列名、ORDER BY 的字段与方向、LIMIT 的偏移量都无法参数化,只能走白名单校验;LIKE 的通配符和 IN 的占位符数量必须动态拼接,拼接时同样要校验。此外还有几类容易忽略的失效场景:部分框架提供非参数化插值(比如 MyBatis 的 ${} 与 #{} 的区别),开发者用错等于没防护;存储过程内部动态拼 SQL、字符集不一致带来的宽字节问题,都可能绕开预编译;还有二次注入,值与逻辑分离的前提在这里不成立。所以结论是「参数化必要但不充分」,完整的防护链还应包括最小权限账号、类型校验与白名单、错误信息不对外回显、以及上线前的代码扫描。
甲方企业安全该怎么搭。 这道题考的是视角切换:乙方渗透是「找洞」,甲方是「让洞尽量少、出了洞能发现能兜住」。可以从几条主线讲:资产与责任人清单(不知道有什么,其余都无从谈起)、身份与权限(统一登录、最小权限、离职回收、后台与数据接口的鉴权要覆盖到每个入口)、边界与加固(WAF、限流、访问控制、组件与依赖版本管理)、漏洞管理闭环(扫描、众测、SRC 上报进来之后谁修、多久修、有没有复测)、日志与检测响应(关键操作审计、告警与应急流程)、数据分级与合规、供应链与人员意识。落点在于「制度和流程比一次渗透重要」,这也是甲乙方的核心区别。
白盒审计的思路。 先把数据流画出来:入口(路由或 Controller)→ 参数校验 → 业务层 → 数据访问层 → 输出。然后在图上找交点——外部可控输入 × 危险操作,也就是 sink:SQL 拼接、命令执行、反序列化、文件上传与路径拼接、模板渲染、SSRF 的出网点、日志注入。实操上的顺序是:用全局搜索和 CodeQL/Semgrep 这类工具把可疑 sink 全捞出来,再逐个回溯它上面的输入是否可控、有没有过滤(过滤是否是黑名单、能否绕过);同时检查鉴权注解与拦截器的作用范围,越权漏洞往往出在「新加的接口忘了加权限校验」;再翻提交历史,看改动集中的地方有没有把校验删掉。工具只负责缩小范围,最终判定必须人工确认可达性,否则报出来的一堆都是误报。
业务逻辑漏洞(QQ 空间、黄钻这类)怎么挖。 逻辑漏洞的共同点是功能按设计实现、但设计漏了状态。挖法是先建两张图:业务状态机(浏览、试用、开通、生效、到期、退款、注销)与角色权限矩阵(游客、普通用户、黄钻用户、运营、后台)。然后逐条状态转移问三个问题——这一步服务端有没有重新校验前置条件?价格、数量、权益标识是不是由前端传来的?同一个请求并发两次会怎样?黄钻这类付费权益的常见漏洞点就落在这三个问题上:改价与改数量、越权替他人开通或领取、试用与正式权益边界不清导致过期不回收、并发下单或并发领取造成重复到账、跳过支付回调直接调用发货接口、以及只校验了页面可见性的「前端限制」。验证时用小号与沙箱环境,只做能证明问题存在的最小操作,拿到证据就停手。
反问环节的两问该怎么接。 「看重学生哪些方面」「有什么建议」这类问题,面试官一般会给出方向性的答案(基础要能自己讲清楚、了解企业安全体系、保持持续学习、多实习接触真实业务)。听的时候可以顺手把对方的答案接成下一句自我陈述,比如对方说「基础漏洞要能自己讲清原理」,就补一句自己在盲注那次是怎么从回显判断信道、最后怎么绕出来的——反问环节是最后一次给自己加印象分的机会,不要只说「好的谢谢」。