专注Web及移动安全[红日安全72期]
字数 2647 2025-08-18 11:37:57
Web及移动安全综合教学文档
一、Web安全核心知识
1.1 SQL注入与WAF绕过
SQL注入基础
- 通过构造恶意SQL语句破坏正常查询逻辑
- 常见注入点:用户输入、URL参数、HTTP头、Cookie等
WAF绕过技术(上)
- 注释符绕过:
/*!*/、--、# - 大小写混合:
SeLeCt代替select - 内联注释:
/*!50000select*/ - 等价函数替换:
substring→mid→substr - 空白符替换:
%09(tab)、%0A(换行)、%0C(换页)
WAF绕过技术(下)
- 编码绕过:十六进制、URL编码、双重URL编码
- 参数污染:
id=1&id=2 union select - HTTP参数分割:分号、逗号分隔
- 缓冲区溢出:超长字符串使WAF失效
- 时间延迟:
sleep()函数检测盲注
1.2 XSS深度分析
- 存储型XSS:恶意脚本永久存储在服务器
- 反射型XSS:恶意脚本通过URL参数即时反射
- DOM型XSS:完全在客户端执行,不依赖服务器
- 防御方法:
- 输入输出编码(HTML, JavaScript, URL, CSS)
- CSP(内容安全策略)头设置
- HttpOnly Cookie标志
- 输入验证与过滤
1.3 XML相关漏洞
XXE注入(XML外部实体)
- 利用方式:
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <foo>&xxe;</foo> - 危害:文件读取、SSRF、端口扫描、拒绝服务
- 修复方案:
- 禁用DTD和外部实体
- 使用安全XML解析器配置
- 输入过滤
<!DOCTYPE和<!ENTITY
XML注入
- 通过恶意XML破坏文档结构
- 防御:XML Schema验证、输入过滤、最小权限解析
1.4 Tomcat攻击面
- 管理界面弱口令攻击
- WAR文件上传漏洞
- CVE-2017-12615(PUT方法任意文件上传)
- CVE-2020-1938(Ghostcat文件包含/读取)
- JMX服务未授权访问
- 防御措施:更新补丁、禁用管理界面、配置强认证
二、渗透测试技术
2.1 信息收集全流程
-
被动收集:
- WHOIS查询
- DNS枚举(dig, nslookup)
- 搜索引擎查询(Google dork)
- 历史快照(archive.org)
- SSL证书信息
-
主动收集:
- 端口扫描(nmap, masscan)
- 服务指纹识别
- 目录/文件爆破(dirb, gobuster)
- 子域名枚举(subfinder, amass)
- WAF识别(wafw00f)
2.2 Windows提权技术
- 系统信息收集:
systeminfo whoami /priv net user - 常见提权路径:
- 服务配置不当(服务路径空格、弱权限)
- AlwaysInstallElevated注册表项
- 可写系统目录(DLL劫持)
- 未修补内核漏洞(MS16-032等)
- 密码复用(获取内存中的凭据)
2.3 内网渗透技术
RDP安全配置
- 网络级认证(NLA)强制启用
- 限制登录IP范围
- 账户锁定策略
- 修改默认3389端口
- 双因素认证
端口转发技术
- lcx工具使用:
# 本地端口转发 lcx -listen 4444 5555 lcx -slave 127.0.0.1 4444 127.0.0.1 3389 # 远程端口转发 lcx -tran 53 victim_ip 3389 - 替代方案:SSH隧道、netsh端口代理、frp/ngrok
三、安全工具详解
3.1 Acunetix Web漏洞扫描
- 功能特点:
- 自动爬取网站结构
- 检测SQLi/XSS/XXE等漏洞
- 支持HTML5/单页应用扫描
- 生成详细报告(PDF/HTML)
- 使用技巧:
- 自定义扫描策略
- 设置排除规则避免误报
- 结合手动验证减少误报
3.2 Burp Suite专业用法
- 核心模块:
- Proxy:拦截修改HTTP请求
- Scanner:自动漏洞扫描
- Intruder:定制化攻击载荷
- Repeater:请求重放测试
- Sequencer:会话令牌分析
- 高级技巧:
- 宏录制处理复杂认证流程
- 自定义插件开发(Java/Python)
- Collaborator检测带外漏洞
- 匹配替换规则自动化测试
3.3 iOS渗透工具Cycript
- 功能:运行时注入JavaScript语法操作Objective-C
- 常用命令:
// 获取当前应用类 ObjectiveC.classes // 方法hook var vc = [[UIApp keyWindow] rootViewController] [vc presentAlertWithTitle:"Hacked"] // 内存搜索 var results = [] for(var addr=0; addr<0x100000000; addr+=0x100000){ try { results.push(addr + ": " + new Instance(addr)) } catch(e){} }
四、代码审计专项
4.1 Java Web代码审计
SQL注入审计点:
- 字符串拼接查询(
Statement代替PreparedStatement) - 未过滤的
request.getParameter() - MyBatis中的
${}占位符风险 - HQL注入风险
反序列化漏洞:
ObjectInputStream未校验输入- 危险第三方库(commons-collections等)
- XStream/Castor等XML反序列化风险
4.2 PHP代码审计
反序列化漏洞:
- 危险魔术方法:
__wakeup() // 反序列化时自动调用 __destruct() // 对象销毁时调用 __toString() // 对象被当作字符串时 - 利用链构造:寻找可触发危险函数的对象链
Session反序列化:
session.serialize_handler配置差异php_serialize与php格式混用风险- 利用方式:
// 攻击者控制session数据 $_SESSION['data'] = '恶意序列化数据';
4.3 SQL注入审计入门
-
入口点定位:
- 用户输入来源(\(_GET/\)_POST/$_COOKIE)
- 数据库操作函数(mysql_query, mysqli, PDO)
-
漏洞验证:
// 典型漏洞代码 $id = $_GET['id']; $sql = "SELECT * FROM users WHERE id = $id"; // 修复方案 $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$id]);
五、防御体系建设
5.1 系统服务安全运行
- 最小权限原则运行服务
- 定期更新补丁和依赖库
- 日志集中收集与分析
- 网络隔离(DMZ区设置)
- 服务降级和熔断机制
5.2 防火墙配置要点
- 入站规则:默认拒绝,按需开放
- 出站规则:限制不必要外连
- 应用层防护(WAF规则)
- 速率限制防DDoS
- 与IDS/IPS联动
5.3 安全开发生命周期
- 需求阶段:威胁建模
- 设计阶段:安全架构评审
- 实现阶段:安全编码规范
- 测试阶段:SAST/DAST扫描
- 部署阶段:安全基线配置
- 运维阶段:持续监控更新
六、扩展学习资源
6.1 学习路线指南
-
基础阶段:
- 网络协议(HTTP/HTTPS/TCP/IP)
- 操作系统原理(Linux/Windows)
- 编程基础(Python/PHP/Java)
-
中级阶段:
- OWASP Top 10实战
- 常见漏洞复现(CVE分析)
- 渗透测试方法论
-
高级阶段:
- 红队基础设施搭建
- 定制化漏洞利用开发
- 防御体系绕过技术
6.2 每周安全跟踪
- CVE漏洞公告平台
- 厂商安全公告订阅
- 安全会议记录(BlackHat/Defcon)
- GitHub安全项目趋势
- 威胁情报源(AlienVault OTX)
本教学文档涵盖了Web及移动安全的核心知识点,可作为系统性学习的安全参考手册。建议结合实操练习巩固各技术点,并持续关注安全动态更新知识库。