教材学习
第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)网页木马检测分析技术综合对比
视频学习
视频十六:Kali漏洞分析之数据库评估(一)
1.BBQSQL:BBQSQL是一个Python编写的盲注工具,当检测可疑的注入漏洞时会很有用。同时BBQSQL是一个半自动工具,允许客户自定义参数。
2.DBPwAudit(数据库用户名密码枚举工具)
3.HexorBase:图形化的密码破解与裂解工具,开源。
4.JSQL Injaction
JSQL是一款轻量级安全测试工具,可以检测SQL注入漏洞,它跨平台(Windows,Linux,Mac OSX,Solarls)、开源免费。将存在注入漏洞的URL贴进来即可进行响应的漏洞利用。图形化界面比较亲民,但是使用效果有待改善。
5.MDBTools
包括MDB-Export,以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具,具体环境具体使用。
6.Oracle Scanner
是一个用Java开发的Oracle评估工具。它是基于插件的结构,当前有两个插件可以做:Sid列举、口令调试、列举Oracle版本、列举账号角色、列举账号特权、列举账号哈希、列举审计信息、列举口令信息、列举数据库连接。
7.SIDGusser
同样针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接。
8.SqIDICT:又一个用户名密码枚举工具,通过Wine运行。
视频十七:Kali漏洞分析之数据库评估(二)
1.tnscmd10g
2.sqlsus
sqlsus是一个开放源代码的mysql注入和接管工具,sqlsus使用perl编写,基于命令行界面。sqlsus可以获取数据库结构,注入和你自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等等。最好用的两点就是注射获取数据速度非常快,另一个是自动搜索可写目录。
3.sqlninja
在sql注入方面一直尊sqlmap为神器,但sqlninja也有自己的特点。它是一款perl编写的一个专门针对microsoft SQL Server的sql注入工具。和市面上其它的注入工具不同,sqlninja没有将精力用在跑数据库上,而是侧重于获得一个shell。
4.Sqlmap
sqlmap是一个开源的渗透测试工具它主要用于自动化的侦测和实施SQL注入攻击以及渗透数据库服务器,SQLMAP配有强大的侦测引擎,是用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,还可以从数据库中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。
视频十八:Kali漏洞分析之Web应用代理
1.Burp Suite是用于攻击web应用程序的集成平台。Burp Suite带有一个代理,通过默认端口8080上运行,使用这个代理,我们可以截获并修改从客户端到web应用程序的数据包。
2.OwaspZAP
是一款查找网页应用程序漏洞的综合类渗透测试工具,它包含了拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索等功能。OWASP ZAP为绘画类调试工具,调试功能对网站不会发起大量请求,对服务器影响小。
3.Paros
是一个对Web应用程序的漏洞进行评估的代理程序,即一个基于Java的web代理程序,可以评估web应用程序的漏洞。它支持动态的编辑/查看HTTP/HTTPS,从而改变cookies和表单字段等项目。它包括一个web通信记录程序,web全套程序,hash计算器。
4.proxystrike
5.vega代理功能
vega是一个开放源代码的web应用程序安全测试平台,vega能够帮助你验证SQL注入、跨站脚本、敏感信息泄露和其他一些安全漏洞,vega使用java编写,有GUI,可以在linux、OSX和windows下运行。
6.webscarab
一款代理软件,包括HTTP代理,网络爬行、网络蜘蛛,会话ID分析,自动脚本接口,模糊测试工具,WEB格式的编码/解码,WEB服务描述语言和SOAP解析器等功能模块。
视频十九:Kali漏洞分析之BurpSuite
Burp Suite是一个Web应用程序集成攻击平台,它包含了一些列burp工具,这些工具之间有大量接口可以互相通信,这样设计的目的是为了促进和提高整个攻击的效率。平台中所有工具共享同一robust框架,以便统一处理HTTP请求,持久性,认证,上游代理,日志记录,报警和可扩展性。
1.配置监听端口,配置浏览器,在大多数浏览器,你只要打开设置-网络-代理,然后告诉它使用“localhost”和端口“8080”。然后保存更新。
2.爬虫与扫描
可以列出当前网站中以获取到的目录与文件及引用到的其他网站。
3.测试暴力破解表单账户密码
针对不同的表单进行枚举破解,若网站存在代码缺陷,亦可绕过某些验证码进行枚举。
4.Repeater 改包重放模块
5.decoder模块:一个易于使用的编码解码工具
6.compare模块
7.插件模块
视频二十:Kali漏洞分析之Fuzz工具
1.Bed.pl
Bed是一个纯文本协议的Fuzz工具,能够检查常见的漏洞,如缓冲区溢出,格式串漏洞,整数溢出等。
2.Fuzz_ipv6
THC出品的针对IPV6协议的模糊测试工具
3.ohrwurm
4.powerfuzzer
5.Wfuzz
针对WEB应用的模糊测试工具,可以进行web应用暴力猜解,也支持对网站目录、登录信息、应用资源文件等的暴力猜解,还可以进行get及post参数的猜解,sql注入、xss漏洞的测试等。
6.sfuzz:simple-fuzzer
教材学习存在问题及解决过程
SQL注入与XSS跨站脚本攻击的技术原理有一些地方看不懂,可能是没有网页编程方面的知识,以后应该了解一些。
视频学习存在问题及解决过程
DVWA连接不上,重启了几次就好了,我也不知道为啥
进度条
教材11.12章;视频16-20.