网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
字某跳动-安全研究实习生(三面)
聊聊攻防演练中比较得意,印象深刻的一次经历 CSRF漏洞修复 Java系统代码,审计流程 Java系统中的sql注入怎么做一个防御和修复 在浏览器中输入一个域名去访问时,浏览器做了什么 一个系统的登录页,通常可能出现什么漏洞 安全工具开发,waf/扫描器
一、攻防演练经典案例分析
某金融系统红队渗透实例
- 攻击路径:钓鱼邮件→员工终端沦陷→内网横向移动→Oracle数据库提权→核心交易系统控制
- 技术亮点:
- 使用Cobalt Strike的Office宏攻击载荷绕过邮件网关检测
- 通过内存注入实现无文件驻留,规避EDR查杀
- 利用TNS协议漏洞(CVE-2022-21501)完成数据库提权
- 防御绕过:
- 修改User-Agent头模仿爬虫流量
- 使用域前置技术隐藏C2通信
- 通过DNS隧道进行数据渗出
二、CSRF漏洞修复方案
Java系统多维度防护体系:
- 同步令牌机制:java
// Spring Security配置 http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
- SameSite Cookie策略:xml
<session-config> <cookie-config> <same-site>strict</same-site> </cookie-config> </session-config>
- 验证Referer白名单(需配合HTTPS使用)
- 敏感操作二次认证(如交易密码验证)
三、Java代码审计流程
环境构建:
- 使用Jenkins+SonarQube搭建自动化扫描平台
- 配置FindSecBugs、SpotBugs等静态分析工具
重点审计项:
- 反射调用点(Class.forName() )
- 反序列化入口(readObject())
- JNDI注入风险(InitialContext.lookup() )
- 表达式注入(OGNL/SpEL)
典型漏洞模式:java
// 危险代码示例 String query = "SELECT * FROM users WHERE id = " + request.getParameter("id"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(query);
四、SQL注入防御体系
分层防护策略:
层级 防护措施 示例 代码层 PreparedStatement String sql = "SELECT * FROM users WHERE id = ?";
框架层 MyBatis参数映射 <select id="getUser" parameterType="String" resultType="User">
数据层 存储过程调用 {call getUserInfo(?)}
运维层 数据库防火墙 设置SQL语法白名单规则 五、域名访问技术解析
浏览器处理流程:
- 缓存查询:
- 浏览器缓存 → 系统hosts文件 → DNS缓存
- 递归查询:mermaid
graph LR 本地DNS-->根DNS 根DNS-->顶级DNS 顶级DNS-->权威DNS
- 连接建立:
- TCP三次握手(SYN→SYN-ACK→ACK)
- TLS1.3握手(ClientHello→ServerHello→Finished)
- 资源处理:
- 预解析DNS(dns-prefetch)
- 渲染引擎工作流(Parse→Style→Layout→Paint)
六、登录页安全风险
十大常见漏洞:
- 用户名枚举(差异响应时间)
- JWT实现缺陷(缺失签名验证)
- OAuth2配置错误(redirect_uri未校验)
- 密码哈希存储缺陷(使用MD5未加盐)
- 会话固定攻击(登录后未更新SessionID)
加固建议:
- 实施FIDO2无密码认证
- 部署基于行为的认证(鼠标轨迹分析)
- 添加人机验证(Geetest等动态验证码)
七、安全工具开发实践
WAF开发核心模块:
- 协议解析层:
- HTTP/2 Frame解析
- Multipart/form-data解码
- 检测引擎:
- 正则规则库(OWASP CRS)
- 机器学习模型(请求异常检测)
- 防护机制:
- 虚拟补丁(针对特定漏洞)
- 请求限速(令牌桶算法)
扫描器技术难点:
- 分布式爬虫调度(使用Scrapy-Redis)
- PoC验证沙箱(Docker动态环境)
- 漏洞误报消除(多因子验证机制)
建议结合ATT&CK框架构建检测规则,采用MITRE CWE标准进行漏洞分类。对于Java系统防护,推荐部署RASP方案进行运行时保护。