网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
一面
1. 数组和链表各自的优势和原因
2. 操作系统层面解析和进程
3. 线程和进程通信方式及数据安全问题
4. 线程和多进程的选用场景及原因
5. SQL注入绕WAF方式
6. FUZZ绕WAF的payload长度通常是多少
7. 不查资料直接写IPv4正则regex
8. Fastjson反序列化原理
9. Java反射机制导致的安全问题
10. XSS和CSRF的相同点及配合利用
11. CSRF_TOKEN的位置、原理及绕过
12. 常见的HTTP头及作用
13. Nmap扫描方式及NSE脚本原理
二面
1. 跨域的解决办法及安全问题
2. Python多进程和多线程选择
3. Python的GIL锁作用
4. JVM的GC ROOT作用
5. JVM垃圾收集器
6. 引用计数机制的缺点
7. CSRF如何拿到Cookie
8. 判断钓鱼网站
9. 跨域拿Cookie的限制与绕过
10. HTTP-Only的作用
11. SYN Flood攻击与防御
12. SYN反向探测原理
13. TCP SYN Cookie原理
14. ARP欺骗原理及防御
15. UDP端口探测
16. Nmap的FIN扫描和空扫描
17. 三次握手序列号变化
18. Python的值类型和引用类型
19. Python的List和Dict线程安全
三面
1. CSRF原理
2. SSRF实际例子
3. RCE实际例子
4. 文件上传漏洞减少原因
5. 基于语义分析的WAF
一面 数组和链表各自的优势和原因 操作系统层面解析和进程 线程和进程通信方式以及数据安全问题 线程和多进程的选用场景以及原因 SQL注入绕waf方式 FUZZ绕WAF的payload长度通常十多少 不查资料不能测试直接写IPV4的正则 fastjson的反序列化原理 Java反射机制会导致怎么样的安全问题 XSS和CSRF的相同点以及如何配合利用 CSRF_TOKEN的位置以及原理和绕过 尽可能多说你所知道的HTTP头 Nmap常见扫描方式的原理以及NSE脚本原理二面 跨域的解决办法原理以及安全问题 Python多进程和多线程如何选择 Pythonde GIL锁本质上做了什么事情 Javade JVM为什么要有GCROOT Java的JVM有哪些垃圾收集器 垃圾回收计数引用机制的缺点是什么 CSRF怎么拿到COOKIE 怎么判断 一个网站是钓鱼网站 不同域名怎么通过CSRF拿COOKIE 说一些HTTp头以及作用 HTTP-Only本质上做了什么事情 SYN flood 攻击原理以及解决方案 SYN 反向探测的原理是什么 TCP syn Cookie的原理 arp欺骗攻击原理及解决方案 UDP 端口探测的有效方式是什么 Nmap的FIN扫描和空扫描是什么 三次握手的序列号变化说一下 Python的值类型和引用类型是哪些 Python的List和dict线程安全吗三面 CSRF原理 结合实际的例子说说SSRF 结合实际的例子说说RCE 为什么现在文件上传很少了 基于语义分析的WAF了解吗
一面
1. 数组和链表各自的优势和原因
- 数组:
- 优势:内存连续,支持快速随机访问(时间复杂度O(1));缓存友好(局部性原理)。
- 原因:通过索引直接计算地址,适合读多写少场景。
- 链表:
- 优势:动态内存分配,插入/删除高效(时间复杂度O(1));无需预先确定大小。
- 原因:通过指针链接节点,适合频繁修改数据的场景(如队列、栈)。
2. 操作系统层面解析和进程
- 进程:操作系统资源分配的基本单位,包含独立的内存空间、文件句柄等。
- 解析:
- 进程管理:通过PCB(进程控制块)记录进程状态、优先级、资源等。
- 内存管理:虚拟内存、分页机制隔离进程内存。
- 调度:时间片轮转、优先级调度等算法分配CPU资源。
3. 线程和进程通信方式及数据安全问题
- 通信方式:
- 进程:管道、消息队列、共享内存、信号量、Socket。
- 线程:共享全局变量、互斥锁、条件变量。
- 数据安全:
- 竞态条件:通过锁(如互斥锁)或原子操作避免。
- 死锁:资源有序分配、超时机制预防。
4. 线程和多进程的选用场景及原因
- 线程:
- 场景:I/O密集型任务(如网络请求),需共享数据。
- 原因:轻量级、切换成本低,但受GIL限制(如Python)。
- 多进程:
- 场景:CPU密集型任务(如科学计算),需隔离资源。
- 原因:独立内存空间,避免竞争,但开销较大。
5. SQL注入绕WAF方式
- 注释符干扰:
/*!50000SELECT*/
绕过关键字检测。- 编码混淆:Hex编码(
0x61646D696E
)、URL编码(%27
)。- 分块传输:利用HTTP分块编码拆分恶意语句。
- 参数污染:重复参数(
?id=1&id=2' union select 1,2--
)。
6. FUZZ绕WAF的payload长度通常是多少
- 常见长度:保持在100-200字节,避免触发WAF长度检测。
- 策略:通过随机字符串填充或分割关键字符(如
UNION/**/SELECT
)。
7. 不查资料直接写IPv4正则regex
^((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$
8. Fastjson反序列化原理
- 原理:解析JSON时自动调用类的
setter
或特定构造方法。- 漏洞触发:攻击者构造恶意JSON,利用
@type
指定危险类(如JNDI注入类)。
9. Java反射机制导致的安全问题
- 私有方法调用:通过反射访问敏感方法(如
getPassword
)。- 动态加载类:加载恶意字节码触发RCE。
- 防御:启用安全管理器,限制反射权限。
10. XSS和CSRF的相同点及配合利用
- 相同点:均依赖用户浏览器执行恶意操作。
- 配合利用:通过XSS窃取Token,绕过CSRF防护,构造伪造请求。
11. CSRF_TOKEN的位置、原理及绕过
- 位置:表单隐藏字段或HTTP头(如
X-CSRF-Token
)。- 原理:服务端验证Token与Session绑定。
- 绕过:Token泄露(如XSS)、Token未绑定用户(如全局Token)。
12. 常见的HTTP头及作用
Header 作用 Content-Type
定义请求/响应体的MIME类型 Cookie
客户端存储的会话信息 Referer
请求来源页面(用于防盗链) User-Agent
客户端标识(用于设备检测) CSP
内容安全策略(防御XSS)
13. Nmap扫描方式及NSE脚本原理
- 扫描方式:
- SYN扫描(-sS):发送SYN包,根据响应判断端口状态。
- ACK扫描(-sA):绕过无状态防火墙,检测过滤规则。
- NSE脚本:基于Lua的自动化脚本,用于漏洞检测(如
http-sql-injection
)。
二面
1. 跨域的解决办法及安全问题
- JSONP:通过
<script>
标签加载跨域数据,但易受XSS攻击。- CORS:服务端设置
Access-Control-Allow-Origin
,需验证来源防CSRF。- 代理服务器:隐藏跨域请求,但增加中间人风险。
2. Python多进程和多线程选择
- 多进程:适合CPU密集型任务(绕过GIL限制)。
- 多线程:适合I/O密集型任务(如爬虫),但需注意GIL锁竞争。
3. Python的GIL锁作用
- 本质:全局解释器锁,确保同一时刻仅一个线程执行字节码。
- 影响:多线程无法并行利用多核CPU,但I/O操作可释放GIL。
4. JVM的GC ROOT作用
- 作用:标记存活对象的起点(如栈帧局部变量、静态变量)。
- 原理:通过可达性分析算法(根搜索)判断对象是否可回收。
5. JVM垃圾收集器
- Serial:单线程,适合客户端应用。
- Parallel Scavenge:多线程,注重吞吐量。
- CMS:低停顿时间,但内存碎片多。
- G1:分区回收,平衡吞吐量和延迟。
6. 引用计数机制的缺点
- 循环引用:对象互相引用导致无法回收(Python需靠分代GC辅助)。
- 性能开销:频繁更新计数器影响效率。
7. CSRF如何拿到Cookie
- XSS配合:通过XSS窃取Cookie,绕过同源策略。
- 子域漏洞:利用顶级域Cookie共享(如
.example.com
)。
8. 判断钓鱼网站
- URL检测:仿冒域名(如
paypa1.com
)、非HTTPS。- 内容检测:拼写错误、强制输入敏感信息。
- 证书检查:无效或自签名SSL证书。
9. 跨域拿Cookie的限制与绕过
- 同源策略:仅同源可读Cookie,但可通过
document.cookie
劫持子域。- CORS漏洞:服务端配置
Access-Control-Allow-Origin: *
泄露数据。
10. HTTP-Only的作用
- 原理:禁止JavaScript读取Cookie,防御XSS窃取会话。
- 局限:无法防御CSRF(需配合Token)。
11. SYN Flood攻击与防御
- 原理:伪造大量SYN包耗尽服务端资源。
- 防御:SYN Cookie(哈希生成序列号)、连接限制、防火墙过滤。
12. SYN反向探测原理
- 原理:向目标发送SYN-ACK包,若收到RST说明端口关闭,无响应说明过滤。
13. TCP SYN Cookie原理
- 生成:服务端通过哈希计算序列号,避免保存半连接状态。
- 验证:客户端返回ACK时,服务端重新计算哈希验证合法性。
14. ARP欺骗原理及防御
- 原理:伪造ARP响应包,劫持局域网流量。
- 防御:静态ARP绑定、DHCP Snooping、ARP检测工具。
15. UDP端口探测
- 方式:发送UDP包,若收到
ICMP不可达
说明端口关闭,否则可能开放。
16. Nmap的FIN扫描和空扫描
- FIN扫描(-sF):发送FIN包,关闭端口会返回RST。
- 空扫描(-sN):发送无标志位包,行为类似FIN扫描。
17. 三次握手序列号变化
- Client→Server:SYN(seq=x)
- Server→Client:SYN-ACK(seq=y, ack=x+1)
- Client→Server:ACK(seq=x+1, ack=y+1)
18. Python的值类型和引用类型
- 值类型:不可变对象(int、str、tuple),传递时复制值。
- 引用类型:可变对象(list、dict),传递时共享内存地址。
19. Python的List和Dict线程安全
- 非线程安全:并发修改可能导致数据错乱(需用锁或线程安全结构如
queue
)。
三面
1. CSRF原理
- 案例:用户登录银行网站后,访问恶意页面触发转账请求(携带自动提交的Cookie)。
2. SSRF实际例子
- 案例:攻击者利用网站URL参数(如
image=http://内网IP:8080
)探测内网服务。
3. RCE实际例子
- 案例:通过Web应用未过滤的输入(如
; cat /etc/passwd
)执行系统命令。
4. 文件上传漏洞减少原因
- 防护增强:WAF检测文件头、后缀名、内容扫描;框架内置安全机制(如Spring文件类型校验)。
5. 基于语义分析的WAF
- 原理:解析SQL/命令的语法树,而非简单匹配关键字,防御混淆攻击(如
SEL/**/ECT
)。- 绕过难度:需构造符合语义的恶意语句(如利用注释干扰解析)。