博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

《网络攻击与防范》第五周学习总结

Posted on 2017-04-02 20:50  刚开始学习的柚子  阅读(363)  评论(5编辑  收藏  举报

20169308 2016-2017-2 《网络攻击与防范》第五周学习总结

教材学习内容总结

本周主要学习教材第11、12章,分别从Web技术的服务端和浏览器端来分析Web安全攻防的技术,以及最为基础和重要的攻击技术与防范措施。

Web应用体系结构

  • B/S(浏览器/服务器)计算结构,大大提升了部署和应用的便捷性。
  • Web应用的体系结构如图所示,由浏览器作为“瘦”客户端主要完成数据显示与展示内容的渲染功能;由功能强大的“胖”服务器负责完成主要业务的计算处理;两者之间通过因特网或内联网上HTTP/HTTPS应用层协议的请求与应答进行通信。“胖”服务器由Web服务器软件、Web应用程序及后端数据库构成,并通过经典的三层架构,即表示层、业务逻辑层和数据层,来进行组织与构建。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170330200727774-1610040393.png)
  • 浏览器
    标准的Web客户端就是我们所熟知的浏览器,如IE、Firefox、Chrome等,它们都使用HTTP/HTTPS协议、HTML语言和Web服务器进行交互,获取Web服务器上的信息和应用服务。随着JavaScript、Flash、RIA、Ajax等技术的发展,浏览器不再仅仅限于传统的网页显示渲染,具备更多的交互与执行功能。

  • Web服务器
    Web服务器软件通常被简单地描述为HTTP守护程序,接收Web客户端对资源的请求,在这些请求上执行一些基本的解析处理以确定资源的存在,,然后将它传送给Web应用程序来执行,等Web应用程序执行完逻辑并返回响应时,Web服务器再将这个响应返回给Web客户端,在浏览器上进行本地执行、渲染和展示。Web服务器所应用的技术有:ASP、ASP.NET、ISAPI服务扩展、COM等,支持语言有:PHP、Python、Perl等。

  • Web应用程序
    现代Web应用的核心是处于服务器端业务逻辑层的Web应用程序。Web应用程序的多层体系结构扩展了原本简单的结构,并把它变成了一个动态引擎,与用户进行实时交互。其中最普遍应用的就是3层体系结构,由表示层、业务逻辑层和数据层组成。表示层的功能是接受Web客户端输入并显示结果,通常由HTML的显示、输入表单等标签所构成;业务逻辑层从表示层接收输入并在其上完成某些工作,并可能需要数据层的协作,然后将结果送回表示层,业务逻辑层是Web应用程序的核心;最后,数据层以数据库或本地文件形式,提供非易失性的信息存储,这些信息可以被逻辑层请求或更新。

  • 数据库
    数据库是Web应用存储数据的地方,也作为Web应用程序多级结构中的最后一层。业务逻辑层通过一系列的数据连接器连接至后台数据库关系系统,对数据库进行查询、操作和更新。常用数据连接器包括ODBC、OLEDB、JDBC等。


传输协议HTTP/HTTPS

  • HTTP/HTTPS协议是浏览器和由Web应用程序和数据库所构成的Web站点之间的通信传输协议。
  • 超文本传输协议(HTTP)默认使用TCP80端口,HTTP是相对简单,无状态的、基于ASCII码的协议。这些特点造就了HTTP协议的简单和流行,同时也导致其易受各种网络攻击。
  • 为了提升HTTP协议安全的机制:SSL/TLS隧道技术跳加密传输、Cookie机制进行会话状态管理、嵌入基础认证、摘要认证、基于表单的认证、NTLM认证、协商认证、客户端证书认证等。

Web应用安全

  • Web应用安全威胁
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331195956930-1511918438.png)
  • Web应用的信息收集
    1、 手工审查Web应用程序结构与源代码。收集目标Web应用程序有如下各种不同类型信息:静态和动态生成的页面、目录结构、辅助性文件、输入表单、查询参数字符串。
    2、 自动下载与镜像Web站点页面。
    3、 使用Google Hacking技术审查与探测Web应用程序。SiteDigger是能自动进行Google Hacking搜索的免费软件。
    4、 Web应用程序安全评估与漏洞探测。Web应用安全辅助分析工具包括如下三种重要类型:浏览器插件、免费工具集、商业Web应用安全评估系统和漏洞扫描器。

  • 攻击Web服务器软件
    Web服务器平台中的安全漏洞:数据驱动的远程代码执行安全漏洞、服务器功能扩展模块漏洞、样本文件安全漏洞、源代码泄漏、资源解析攻击。

  • 攻击web程序
    在2004年发布的《WASC Web安全威胁分类v1.0》将Web应用程序安全威胁从攻击技术角度分为如下6类:针对认证机制的攻击、授权机制的攻击、客户端攻击、命令执行攻击、信息暴露、逻辑攻击。

  • 攻击Web数据内容
    针对敏感数据内容的攻击威胁,具体包括:安全敏感数据泄漏、网站内容遭受篡改以及不良信息内容上传。

  • Web应用安全防范措施
    1、 Web站点网络传输安全设防措施:使用HTTPS来保障Web站点传输时的保密性、完整性与身份真实性;通过加密的连接通道来管理Web站点;对关键的Web服务器,设置静态绑定MAC-IP映射。
    2、 Web站点操作系统及服务安全设防措施:对Web站点的操作系统与服务器软件进行及时的补丁更新、Web站点服务器的操作系统及各种开放服务进行远程安全漏洞扫描、采用提升系统与服务安全性的一般性设防措施。
    3、 Web应用程序安全设防措施
    4、 Web站点数据安全设防措施:提高网站内容维护人员的数据安全意识、对维护网站的数据安全实施日常监测和防护。


SQL注入

  • SQL注入是Web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。

  • SQL注入攻击原理是向Web应用程序提供的用户输入接口输入一段精心构造的SQL查询命令,攻击和利用不完善的输入验证机制,使得注入代码得以执行完成非预期的攻击操作行为。

  • SQL注入攻击步骤:发现SQL注入点、判断后台数据库类型、后台数据库中管理员用户口令字猜解、上传ASP后门、得到默认用户权限、利用数据库扩展存储过程执行shell命令。

  • SQL注入攻击工具:wposion、wieliekoek.pl、SPItoolkit、HDSI等。

  • 防范措施:类型安全的参数编码机制、外部用户输入必须进行完备的安全检查、将动态SQL语句替换为存储过程,预编译SQL或ADO命令对象、加强SQL数据库服务器的配置和链接。


XSS跨站脚本攻击

  • XSS攻击技术原理:与代码注入类似,XSS攻击的根源同样是Web应用程序对用户输入内容的安全验证与过滤不够完善。

  • XSS攻击类型:持久型、非持久型。

  • 测试和利用XSS漏洞步骤:测试XSS漏洞、显示用户会话cookie、窃取用户会话cookie、利用cookie信息假冒其他用户发表和修改帖子、编写实现XSS蠕虫。

  • XSS攻击防范措施:服务器端:输入验证、输出净化、消除危险的输入点;客户端:提升浏览器的安全设置。


Web浏览器安全

  • web浏览的安全问题和威胁
    1、 浏览器软件安全困境三要素:复杂性、可扩展性、连通性。
    2、 浏览安全威胁位置:网络协议、浏览端系统平台、浏览器软件以及插件程序的渗透攻击威胁、社会工程学。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331203456899-1782834472.png)
  • 网页木马的核心:浏览器渗透攻击。

  • 网页挂马机制:内嵌HTML标签、恶意Script脚本、内嵌对象链接、ARP欺骗挂马。

  • 网页木马的检测和分析技术:基于特征码匹配的传统检测方法、基于统计与机器学习的静态分析方法、基于动态行为结果判定的检测方法、基于模拟浏览器环境的动态分析检测方法、网页木马检测分析技术综合对比。

视频学习内容总结

KaliSecurity - 漏洞分析之数据库评估

  • 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 图形化的密码破解与连接工具(数据库),开源

![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331205413852-687887702.png)
  • Jsql Injection
    JSQL是一款轻量级安全测试工具,可以检测SQL注入漏洞。Java写的工具,它跨平台(Windows,Linux,Mac OS X,Sloaris)、开源且免费。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331220418399-989011340.png)
  • MDBTools 具体环境具体使用。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331220911977-1480913542.png)
  • Oracle Scanner
    Oscanner是一个用Java开发的Oracle评估工具。它是基于插件的结构,当前有两个插件可以做:Sid列举、口令测试、列举Oracle版本、列举账号角色、列举账号特权、列举账号哈希、列举审计信息、列举口令策略、列举数据库链接。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331221413633-1646632442.png)
  • SIDGusser
    针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331221629758-945507268.png)
  • SqlDICT 用户名密码枚举工具,Windows下使用,通过Wine模拟运行
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331221956805-27633035.png)
  • tnscmd10g 向Oracle数据库注入命令,不常用

  • Sqlsus
    Sqlsus是一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写,基于命令行界面。
    生成配置文件:sqlsus -g test.conf

  • Sqlninja
    Sqlninjaj是一款专门针对SQL Sever的sql注入工具,侧重于获得一个shell。

![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331223115242-1718146746.png)
  • Sqlmap 开源的渗透测试工具
    SQLMAP主要用于自动化地侦测和实施SQL注入攻击以及渗透数据库服务器。其配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,还可以从数据库中提取数据,此外还能处理潜在的文件系统以及通过带外数据连接执行系统命令等。

Kali漏洞分析之Web应用代理

Web应用代理用于分析数据包、修改数据包重放、暴力攻击。

  • Burp Suite
    Burp Suite是用于攻击web应用程序的集成平台。Burp Suite代理,通过默认端口8080上运行,使用这个代理可以截获并修改从客户端到web应用程序的数据包。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331224457008-297133323.png)
  • OwaspZAP
    OWASP Zed Attack Proxy Project攻击代理,是一款查找网页应用程序漏洞的综合类渗透测试工具。它包含了拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索等功能。OWASP ZAP为会话类调试工具,调试功能对网站不会发起大量请求,对服务器影响较小。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331230826789-874505658.png)
  • Paros
    对Web应用程序的漏洞进行评估的代理程序,一个基于JAVA的Web代理程序。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331231424305-660173377.png)
  • Proxystrike 与Paros类似

  • Vega代理功能
    Vega是一个开放源代码的web应用程序安全测试平台,Vega能够帮助你验证SQL注入、跨站脚本、敏感信息泄露和其他一些安全漏洞。Vega使用Java编写,有GUI,可以在Linux、OS X和windows下运行。Vega类似于Paros Proxy,Fiddler,Skipfish和ZAproxy。

![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331232840945-232527936.png)
  • Webscarab
    Webscarab一款代理软件,包括HTTP代理,网络爬行、网络蜘蛛,会话ID分析,自动脚本接口,模糊测试工具,WEB格式的编码/解码,WEB服务描述语言和SOAP解析器等功能模块。WebScarab基于GNU协议,使用Java编写,是WebGoat中所使用的工具之一。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331233048758-2103803205.png)

Kali漏洞分析之BurpSuite

  • 配置端口
![](http://images2015.cnblogs.com/blog/1115776/201704/1115776-20170401000655633-45819300.png)
  • 监听、爬虫与扫描
![](http://images2015.cnblogs.com/blog/1115776/201704/1115776-20170401001342117-650540115.png) ![](http://images2015.cnblogs.com/blog/1115776/201704/1115776-20170401001359899-1897138192.png)

Kali漏洞分析之Fuzz工具

Fuzz工具用于漏洞挖掘过程中的模糊测试。

  • Bed.pl
    Bed是一个纯文本协议的Fuzz工具,能够检查常见的漏洞,如缓冲区溢出,格式串漏洞,整数溢出等。
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331233814805-1611809618.png)

-Fuzz_ipv6 THC出品的针对IPV6协议的模糊测试工具

![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331234113211-106825304.png)
  • Ohrwurm ohrwurm是一个很迷你RTP fuzz工具
![](http://images2015.cnblogs.com/blog/1115776/201703/1115776-20170331234321852-124787928.png)
  • Powerfuzzer
    Powerfuzzer是一个有图形化界面的fuzz工具,作为一个web请求的fuzz工具。

  • Wfuzz
    针对WEB应用的模糊测试工具,可以进行web应用暴力猜解,也支持对网站目录、登录信息、应用资源文件等的暴力猜解,还可以进行get及post参数的猜解,sql注入,xss漏洞的测试等。

  • XSSer
    主要是对一个页面或一个点进行XSS测试,判断是否有XSS漏洞。

其他

虽然学习了许多知识点,但是没有在实际场景中应用,看完之后记忆也不深刻,应该加深对计算机网络等知识的学习,有了基础才能更好地理解本门课程,这是日后自己需要改进的地方。

学习进度条

1、学习教材第11、12章
2、学习视频16-20,部分实践

参考资料

网络攻防技术与实践 (官网)