第 11 章: web 应用程序安全攻防
11.1 Web 应用程序体系结构及其安全威胁
11.1.1 Web 应用体系结构
Web 应用程序是一种使用浏览器在互联网或企业内部网上进行访问操作的应用软件形态, 通常以浏览器支持的语言所编写, 或能够在浏览器控制的环境中运行, 依赖于浏览器来对应用程序进行渲染与执行.
Web 应用体系结构中的关键组件主要有:
1, 浏览器(Browser)
标准的 Web 客户端就是我们所熟知的浏览器, 如 IE,Firefox,Chrome 等, 他们都使用 HTTP/HTTPS 协议, html 语言和 Web 服务器进行交互, 获取 Web 服务器上的信息和应用服务.
2,Web 服务器(Web Server)
Web 服务器软件通常被简单地描述为 HTTP 守护程序, 接收 Web 客户端对资源的请求, 在这些请求上执行一些基本的解析处理以确定资源的存在, 然后将它传送给 Web 应用程序来执行, 待 Web 应用程序执行完逻辑并返回响应时, Web 服务器再将这个响应返回给 Web 客户端, 在浏览器上进行本地执行, 渲染和展示.
3,Web 应用程序(Web Application)
现代 Web 应用的核心是处于服务器端的业务逻辑, 即 Web 应用程序, 虽然嵌入在浏览器中执行的客户端逻辑 (如 JavaScript 代码, Flash/Java 等对象) 也逐渐地变得更加普遍和重要.
4, 数据库(Database)
数据库有时也被称为 "后台", 是 Web 应用存储数据的地方, 数据层也作为 Web 应用程序多级结构中的最后一层.
5, 传输协议 HTTP/HTTPS
浏览器和由 Web 服务器, Web 应用程序和数据库所构成的 Web 站点之间的通信传输协议是 HTTP/HTTPS 协议.
11.1.2 Web 应用安全威胁
在整个体系结构的每个组件都存在着安全弱点, 容易遭受各种攻击. 有:
1, 针对浏览器和终端用户的 Web 浏览安全威胁. 具体包括以浏览器渗透攻击为核心的网页木马, Phishing 网站钓鱼等.
2, 针对传输网络的网络协议安全威胁.
3, 系统层安全威胁. Web 站点的宿主操作系统, 如 Windows Server,Linux 等, 存在着远程渗透攻击和本地渗透攻击威胁.
4,Web 服务器软件安全威胁.
5,Web 应用程序安全威胁.
6,Web 数据安全威胁.
11.2 Web 应用安全攻防技术概述
11.2.1 Web 应用的信息收集
针对 Web 应用程序的探测和漏洞发现主要技术方法: 手工审查 Web 应用程序结构与源代码, 自动下载与镜像 Web 站点页面, 使用 Google Hacking 技术审查与探测 Web 应用程序, Web 应用程序安全评估与漏洞探测
11.2.2 攻击 Web 服务器软件
Web 服务器平台中的安全漏洞主要分为如下几大类: 数据驱动的远程代码执行安全漏洞, 服务器功能扩展模块漏洞, 样本文件安全漏洞, 源代码泄露, 资源解析攻击
11.2.3 攻击 Web 应用程序
"Web 安全威胁分类" 项目, 将 Web 应用程序安全威胁从攻击技术角度分为如下 6 类:
(1)针对认证机制的攻击
(2)授权机制的攻击
(3)客户端攻击
(4)命令执行攻击
(5)信息暴露
(6)逻辑攻击
11.2.4 攻击 Web 数据内容
Web 站点除了通过服务器软件和应用程序中存在安全漏洞和弱点遭受攻击之外, 还面临着阵地敏感数据内容的攻击威胁, 具体包括安全敏感数据泄露, 网站内容遭受篡改以及不良信息内容上传.
11.2.5 Web 应用安全防范措施
1,Web 站点网络安全设防措施
2,Web 站点操作系统及服务安全设防措施
3,Web 应用程序安全设防措施
4,Web 站点数据安全设防措施
11.3 SQL 注入
11.3.1 SQL 注入攻击原理
SQL 注入是利用 Web 应用程序数据层存在的输入验证不完善性安全漏洞实施的一类代码注入攻击技术.
SQL 注入攻击的原理是向 Web 应用程序提供的用户输入接口输入一段精心构造的 SQL 查询命令, 攻击和利用不完善的输入验证机制, 使得注入代码得以执行完成非预期的攻击操作行为.
11.3.2 SQL 注入攻击步骤和过程
(1)发现 SQL 注入点
(2)判断后台数据库类型
(3)后台数据库中管理员用户口令字猜解
(4)上传 ASP 后门, 得到默认账户权限
(5)本地权限提升
(6)利用数据库扩展存储过程执行 Shell 命令
11.3.3 SQL 注入工具
黑客大曝光中介绍了几款国外安全业界较为知名的自动化 SQL 注入漏洞发现和攻击工具, 如 Wposion 能够在动态 Web 文档中找出 SQL 注入漏洞; wieliekoek.pl 能够以并以网站镜像工具生成的输出为输入, 找出含有表单页面, 允许在配置文件中对注入字符串进行修改, 进行 SQL 注入漏洞探测等.
11.4 XSS 跨站脚本攻击
11.4.1 XSS 攻击技术原理
XSS 攻击的根源同样是 Web 应用程序对用户输入内容的安全验证与过滤不够完善, 在许多流行的 Web 论坛, 博客, 留言本及其他用户交互的 Web 应用程序中, 用户提交内容中可以包含 HTML,JavaScript 及其他脚本代码, 而一旦 Web 应用程序没有对这些输入的合法性进行有效检查与过滤, 就很有可能让这些恶意代码逻辑包含在服务器动态产生或更新的网页中.
XSS 攻击的最终攻击目标并非 Web 服务器而是访问这些 Web 服务器的其他用户.
11.4.2 XSS 攻击类型
安全业界普遍将其分为两种主要的 XSS 漏洞类型, 即持久性 XSS 漏洞和非持久性 XSS 漏洞.
持久性 XSS 漏洞是危害最为严重的 XSS 漏洞, 它通常出现于一些可以将用户输入持久性地保存在 Web 服务器端.
非持久性 XSS 漏洞则是最为普遍的类型, 当 Web 浏览器在 HTTP 请求参数或 HTML 提交表单中提供的数据, 被立即由服务器端脚本使用产生一个提供给该用户的结果界面, 那么就很可能存在者非持久性的 XSS 漏洞.
来源: http://www.bubuko.com/infodetail-2554358.html