本周主要学习教材第十一、12章,分别从Web技术的服务端和浏览器端来分析Web安全攻防的技术,以及最为基础和重要的攻击技术与防范措施。mysql
Web应用的体系结构如图所示,由浏览器做为“瘦”客户端主要完成数据显示与展现内容的渲染功能;由功能强大的“胖”服务器负责完成主要业务的计算处理;二者之间经过因特网或内联网上HTTP/HTTPS应用层协议的请求与应答进行通讯。“胖”服务器由Web服务器软件、Web应用程序及后端数据库构成,并经过经典的三层架构,即表示层、业务逻辑层和数据层,来进行组织与构建。
web
浏览器
标准的Web客户端就是咱们所熟知的浏览器,如IE、Firefox、Chrome等,它们都使用HTTP/HTTPS协议、HTML语言和Web服务器进行交互,获取Web服务器上的信息和应用服务。随着JavaScript、Flash、RIA、Ajax等技术的发展,浏览器再也不仅仅限于传统的网页显示渲染,具有更多的交互与执行功能。sql
Web服务器
Web服务器软件一般被简单地描述为HTTP守护程序,接收Web客户端对资源的请求,在这些请求上执行一些基本的解析处理以肯定资源的存在,,而后将它传送给Web应用程序来执行,等Web应用程序执行完逻辑并返回响应时,Web服务器再将这个响应返回给Web客户端,在浏览器上进行本地执行、渲染和展现。Web服务器所应用的技术有:ASP、ASP.NET、ISAPI服务扩展、COM等,支持语言有:PHP、Python、Perl等。shell
Web应用程序
现代Web应用的核心是处于服务器端业务逻辑层的Web应用程序。Web应用程序的多层体系结构扩展了本来简单的结构,并把它变成了一个动态引擎,与用户进行实时交互。其中最广泛应用的就是3层体系结构,由表示层、业务逻辑层和数据层组成。表示层的功能是接受Web客户端输入并显示结果,一般由HTML的显示、输入表单等标签所构成;业务逻辑层从表示层接收输入并在其上完成某些工做,并可能须要数据层的协做,而后将结果送回表示层,业务逻辑层是Web应用程序的核心;最后,数据层以数据库或本地文件形式,提供非易失性的信息存储,这些信息能够被逻辑层请求或更新。数据库
数据库
数据库是Web应用存储数据的地方,也做为Web应用程序多级结构中的最后一层。业务逻辑层经过一系列的数据链接器链接至后台数据库关系系统,对数据库进行查询、操做和更新。经常使用数据链接器包括ODBC、OLEDB、JDBC等。windows
Web应用安全威胁
后端
Web应用的信息收集
一、 手工审查Web应用程序结构与源代码。收集目标Web应用程序有以下各类不一样类型信息:静态和动态生成的页面、目录结构、辅助性文件、输入表单、查询参数字符串。
二、 自动下载与镜像Web站点页面。
三、 使用Google Hacking技术审查与探测Web应用程序。SiteDigger是能自动进行Google Hacking搜索的免费软件。
四、 Web应用程序安全评估与漏洞探测。Web应用安全辅助分析工具包括以下三种重要类型:浏览器插件、免费工具集、商业Web应用安全评估系统和漏洞扫描器。浏览器
攻击Web服务器软件
Web服务器平台中的安全漏洞:数据驱动的远程代码执行安全漏洞、服务器功能扩展模块漏洞、样本文件安全漏洞、源代码泄漏、资源解析攻击。安全
攻击web程序
在2004年发布的《WASC Web安全威胁分类v1.0》将Web应用程序安全威胁从攻击技术角度分为以下6类:针对认证机制的攻击、受权机制的攻击、客户端攻击、命令执行攻击、信息暴露、逻辑攻击。服务器
攻击Web数据内容
针对敏感数据内容的攻击威胁,具体包括:安全敏感数据泄漏、网站内容遭受篡改以及不良信息内容上传。
Web应用安全防范措施
一、 Web站点网络传输安全设防措施:使用HTTPS来保障Web站点传输时的保密性、完整性与身份真实性;经过加密的链接通道来管理Web站点;对关键的Web服务器,设置静态绑定MAC-IP映射。
二、 Web站点操做系统及服务安全设防措施:对Web站点的操做系统与服务器软件进行及时的补丁更新、Web站点服务器的操做系统及各类开放服务进行远程安全漏洞扫描、采用提高系统与服务安全性的通常性设防措施。
三、 Web应用程序安全设防措施
四、 Web站点数据安全设防措施:提升网站内容维护人员的数据安全意识、对维护网站的数据安全实施平常监测和防御。
SQL注入是Web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。
SQL注入攻击原理是向Web应用程序提供的用户输入接口输入一段精心构造的SQL查询命令,攻击和利用不完善的输入验证机制,使得注入代码得以执行完成非预期的攻击操做行为。
SQL注入攻击步骤:发现SQL注入点、判断后台数据库类型、后台数据库中管理员用户口令字猜解、上传ASP后门、获得默认用户权限、利用数据库扩展存储过程执行shell命令。
SQL注入攻击工具:wposion、wieliekoek.pl、SPItoolkit、HDSI等。
防范措施:类型安全的参数编码机制、外部用户输入必须进行完备的安全检查、将动态SQL语句替换为存储过程,预编译SQL或ADO命令对象、增强SQL数据库服务器的配置和连接。
XSS攻击技术原理:与代码注入相似,XSS攻击的根源一样是Web应用程序对用户输入内容的安全验证与过滤不够完善。
XSS攻击类型:持久型、非持久型。
测试和利用XSS漏洞步骤:测试XSS漏洞、显示用户会话cookie、窃取用户会话cookie、利用cookie信息假冒其余用户发表和修改帖子、编写实现XSS蠕虫。
XSS攻击防范措施:服务器端:输入验证、输出净化、消除危险的输入点;客户端:提高浏览器的安全设置。
web浏览的安全问题和威胁
一、 浏览器软件安全困境三要素:复杂性、可扩展性、连通性。
二、 浏览安全威胁位置:网络协议、浏览端系统平台、浏览器软件以及插件程序的渗透攻击威胁、社会工程学。
网页木马的核心:浏览器渗透攻击。
网页挂马机制:内嵌HTML标签、恶意Script脚本、内嵌对象连接、ARP欺骗挂马。
网页木马的检测和分析技术:基于特征码匹配的传统检测方法、基于统计与机器学习的静态分析方法、基于动态行为结果断定的检测方法、基于模拟浏览器环境的动态分析检测方法、网页木马检测分析技术综合对比。
BBQSql
BBQSQL是一个Python编写的盲注工具,当检测可疑的注入漏洞时会颇有用。同时BBQSQL是一个半自动工具,容许客户自定义参数。
DBPwAudit
数据库用户名密码枚举工具
使用参考:
破解SQLServer数据库 #./dbpwaudit –s IP –d master(数据库名) -D mssql(数据库类型) -U username(字典) -P password(字典)
破解MySql数据库 #./dbpwaudit.sh –s IP –d mysql(数据库名称) -D MySQL(数据库类型) -U username(字典) -P password(字典)
HexorBase
图形化的密码破解与链接工具(数据库),开源
Jsql Injection
JSQL是一款轻量级安全测试工具,能够检测SQL注入漏洞。Java写的工具,它跨平台(Windows,Linux,Mac OS X,Sloaris)、开源且免费。
MDBTools
具体环境具体使用。
Oracle Scanner
Oscanner是一个用Java开发的Oracle评估工具。它是基于插件的结构,当前有两个插件能够作:Sid列举、口令测试、列举Oracle版本、列举帐号角色、列举帐号特权、列举帐号哈希、列举审计信息、列举口令策略、列举数据库连接。
SIDGusser
针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle链接字符串,经过实例名+用户+密码链接。
SqlDICT
用户名密码枚举工具,Windows下使用,经过Wine模拟运行
tnscmd10g
向Oracle数据库注入命令,不经常使用
Sqlsus
Sqlsus是一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写,基于命令行界面。
生成配置文件:sqlsus -g test.conf
Sqlninja
Sqlninjaj是一款专门针对SQL Sever的sql注入工具,侧重于得到一个shell。
Sqlmap
开源的渗透测试工具
SQLMAP主要用于自动化地侦测和实施SQL注入攻击以及渗透数据库服务器。其配有强大的侦测引擎,适用于高级渗透测试用户,不只能够得到不一样数据库的指纹信息,还能够从数据库中提取数据,此外还能处理潜在的文件系统以及经过带外数据链接执行系统命令等。
Web应用代理用于分析数据包、修改数据包重放、暴力攻击。
Burp Suite
Burp Suite是用于攻击web应用程序的集成平台。Burp Suite代理,经过默认端口8080上运行,使用这个代理能够截获并修改从客户端到web应用程序的数据包。
OwaspZAP
OWASP Zed Attack Proxy Project攻击代理,是一款查找网页应用程序漏洞的综合类渗透测试工具。它包含了拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索等功能。OWASP ZAP为会话类调试工具,调试功能对网站不会发起大量请求,对服务器影响较小。
Paros
对Web应用程序的漏洞进行评估的代理程序,一个基于JAVA的Web代理程序。
Proxystrike
与Paros相似
Vega代理功能
Vega是一个开放源代码的web应用程序安全测试平台,Vega可以帮助你验证SQL注入、跨站脚本、敏感信息泄露和其余一些安全漏洞。Vega使用Java编写,有GUI,能够在Linux、OS X和windows下运行。Vega相似于Paros Proxy,Fiddler,Skipfish和ZAproxy。
Webscarab
Webscarab一款代理软件,包括HTTP代理,网络爬行、网络蜘蛛,会话ID分析,自动脚本接口,模糊测试工具,WEB格式的编码/解码,WEB服务描述语言和SOAP解析器等功能模块。WebScarab基于GNU协议,使用Java编写,是WebGoat中所使用的工具之一。
配置端口
监听、爬虫与扫描
Fuzz工具用于漏洞挖掘过程当中的模糊测试。
Bed.pl
-Fuzz_ipv6
THC出品的针对IPV6协议的模糊测试工具
Ohrwurm
ohrwurm是一个很迷你RTP fuzz工具
Powerfuzzer
Powerfuzzer是一个有图形化界面的fuzz工具,做为一个web请求的fuzz工具。
Wfuzz
针对WEB应用的模糊测试工具,能够进行web应用暴力猜解,也支持对网站目录、登陆信息、应用资源文件等的暴力猜解,还能够进行get及post参数的猜解,sql注入,xss漏洞的测试等。
XSSer
主要是对一个页面或一个点进行XSS测试,判断是否有XSS漏洞。
虽然学习了许多知识点,可是没有在实际场景中应用,看完以后记忆也不深入,应该加深对计算机网络等知识的学习,有了基础才能更好地理解本门课程,这是往后本身须要改进的地方。
一、学习教材第十一、12章
二、学习视频16-20,部分实践