咸鱼的网络安全学习(四)
一、OWASP Top 10 概览
OWASP(开放式Web应用程序安全项目)每年发布十大安全风险,是漏洞挖掘的基准参考。2021年版的核心变化是将“失效的访问控制”升至首位,新增“不安全设计”和“软件与数据完整性失败”。
• A01:2021 – 失效的访问控制:未授权访问管理后台、越权操作等。
• A02:2021 – 密码学失败:弱密码、不安全加密算法、证书配置错误。
• A03:2021 – 注入:SQL注入、命令注入、代码注入。
• A04:2021 – 不安全设计:架构层面的安全缺陷。
• A05:2021 – 安全配置错误:默认配置、未打补丁、开放多余端口。
• A06:2021 – 脆弱过时组件:使用已知漏洞的第三方库。
• A07:2021 – 身份验证失败:弱口令、暴力破解、会话管理不当。
• A08:2021 – 软件与数据完整性失败:反序列化、文件包含等。
• A09:2021 – 日志与监控不足:无法及时发现攻击。
• A10:2021 – SSRF:服务器端请求伪造。
中文PDF可在OWASP官网或国内社区获取。
二、常见Web漏洞详解
- SQL注入
原理:未过滤的用户输入拼接到SQL语句中,导致攻击者可执行任意SQL命令。
类型:报错注入、联合查询注入、堆查询注入、盲注(布尔/时间)。
利用:通过URL参数、POST数据、Cookie等注入点,使用UNION或盲注提取数据,甚至GetShell。
绕过:编码、大小写混淆、注释符截断、条件判断绕过WAF。
防御:预编译语句、输入过滤、最小权限原则。
- XSS(跨站脚本攻击)
原理:恶意脚本注入到页面中,在其他用户浏览器中执行。
类型:反射型(一次执行)、存储型(持久化)、DOM型(客户端处理)。
利用:窃取Cookie、钓鱼、键盘记录、XSS盲打平台(如xss.sh)。
绕过:同源策略、CORS、httpOnly、CSP。
防御:输入输出转义、设置HttpOnly、启用CSP。
- 文件上传漏洞
原理:未严格校验上传文件类型,允许上传WebShell。
利用:黑白名单绕过(如shell.php.jpg)、MIME类型伪造、截断上传、.htaccess绕过。
防御:白名单校验、内容检测、重命名文件、存储至非Web目录。
- 命令执行与代码执行
原理:用户输入被当作系统命令或代码执行。
常见函数:PHP的system()、eval();Java的Runtime.exec();Python的os.system()。
利用:构造恶意命令,获取服务器控制权。
防御:避免使用危险函数,严格过滤输入。
- SSRF(服务器端请求伪造)
原理:服务器端功能(如文件下载、API调用)未限制请求目标,攻击者可诱导服务器访问内部资源。
利用:读取内部文件、扫描内网端口、攻击云元数据服务。
防御:白名单限制目标URL、禁用不必要的协议。
- CSRF(跨站请求伪造)
原理:用户已登录状态下,被诱导发起恶意请求(如修改密码、转账)。
利用:构造自动提交的表单或图片。
防御:添加CSRF Token、验证Referer、二次确认。
- XXE(XML外部实体注入)
原理:XML解析器允许外部实体引用,可读取本地文件或发起SSRF。
利用:构造恶意XML,读取/etc/passwd或访问内网服务。
防御:禁用外部实体解析。
三、通用漏洞与逻辑漏洞
- 反序列化漏洞
原理:反序列化未校验输入数据,攻击者构造恶意序列化对象,触发任意代码执行。
常见场景:PHP的unserialize()、Java的readObject()、Python的pickle.load()。
防御:对序列化数据进行签名验证,避免反序列化不可信数据。
- 弱类型漏洞
原理:语言类型转换宽松导致逻辑错误(如PHP的与=混淆)。
例子:is_numeric("abc")返回false,但某些函数处理不当。
防御:使用严格比较运算符,强制类型检查。
- 变量覆盖漏洞
原理:通过注册全局变量或extract()函数,覆盖原有变量值。
利用:覆盖权限标志、配置参数。
防御:谨慎使用register_globals、extract()等函数。
- 逻辑漏洞
类型:越权(纵向/横向)、任意密码重置、验证码复用、支付漏洞、短信轰炸、数据遍历等。
特点:不依赖技术缺陷,而是业务设计缺陷。
防御:严格的权限校验、验证码一次性、操作幂等性。
- 缓冲区溢出(二进制层面)
原理:向缓冲区写入超过容量的数据,覆盖返回地址,控制程序执行流。
利用:构造Shellcode,绕过ASLR/DEP。
防御:使用安全函数、启用栈保护、ASLR/DEP。
四、工具与靶场建议
• 漏扫工具:AWVS、AppScan、Nessus、Xray、Goby(快速发现已知漏洞)。
• 手工测试:Burp Suite(代理、重放、Intruder)、SQLMap、BeFF。
• 靶场推荐:DVWA(入门)、vulhub(Docker环境)、HackTheBox(实战)、TryHackMe(教学)。
• 学习资源:FreeBuf、安全客、先知社区、OWASP官网。
五、结语
漏洞挖掘是一项需要长期积累的技能。理解原理是基础,动手实践是关键。建议从OWASP Top 10入手,逐个漏洞在靶场中练习,逐步掌握利用手法和防御策略。记住:没有银弹,每个漏洞都需要结合具体场景灵活应对。保持好奇,持续学习,终将成为一名出色的安全研究员。

浙公网安备 33010602011771号