第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漏洞。
第12章 Web浏览器安全攻防
12.1.2 Web浏览的安全问题与威胁
在近几年的安全威胁演化趋势中,浏览器软件所面临的安全威胁,较操作系统与其他网络服务软件所面临的安全威胁,要更加严重和流行。
Web浏览器软件安全困境三要素为:复杂性,可扩展性,连通性。
Web浏览安全威胁位置
Web浏览环境中的每个组件也都面对着各种不同类型的安全威胁。
1)针对传输网络的网络协议安全威胁
2)针对Web浏览端系统平台的安全威胁
3)针对Web浏览器软件及插件程序的渗透攻击威胁
4)针对互联网用户的社会工程学攻击威胁
12.2 Web浏览端的渗透攻击威胁——网页木马
网页木马从本质特性上是利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。
网页木马成为近几年来最为复杂和难以应对的网络安全威胁类型。
1)多样化的客户端渗透攻击位置和技术类型
2)分布式、复杂的微观链接结构
3)灵活多变的混淆与对抗分析能力
网页木马的本质核心是利用Web浏览端软件安全漏洞的渗透攻击代码。
网页挂马机制很多,最主要的有如下四类策略。
1)内嵌HTML标签
2)恶意Script脚本
3)内嵌对象链接
4)ARP欺骗挂马
12.2.3 网页木马的检测与分析技术
针对网页木马对庞大的因特网用户群体所构成的Web浏览安全威胁,安全研究机构逐步给出了各种网页木马的分析与检测技术方法。主要有:
1)基于特征码匹配的传统检测方法
2)基于统计与机器学习的静态分析方法
3)基于动态行为结果判定的检测分析方法
4)基于模拟浏览器环境的动态分析检测方法
5)网页木马检测分析技术综合对比