20159318 《网络攻击与防范》第5周学习总结
教材学习内容总结
第11章 web应用程序安全攻防
一、web应用程序体系结构及其安全威胁
1、web应用体系结构
B/S计算结构提升部署和应用便捷性,促进了web应用的发展。通过经典的三层架构,即表示层,业务逻辑层和数据层来进行组织与构建。
- 浏览器
使用HTTP/HTTPS协议,HTML语言和web服务器进行交互,获取web服务器上的信息和应用服务。 - Web服务器
web服务器软件通常被描述为HTTP守护程序,接收Web客户端对资源的请求,,在这些请求上执行一些基本的解析处理以确定资源的存在,然后将它传送给web应用程序来执行,待web应用程序执行完逻辑并返回响应时,web服务器在将这个响应返回给web客户端,在浏览器上进行本地执行、渲染和展示。 - web应用程序
即处于服务端的业务逻辑是web应用的核心。 - 数据库
是web应用存储数据的地方,数据层也作为web应用程序多级结构中的最后一层。 - 传输协议HTTP/HTTPS
浏览器和由web服务器,web应用程序和数据库所构成的web站点之间的通信传输协议是HTTP/HTTPS协议。
2、web应用安全威胁
- 针对浏览器和中端用户的web浏览安全威胁
- 针对传输网络的网络协议安全威胁
- 系统层安全威胁
- web服务器软件安全威胁
- web应用程序安全威胁
- web数据安全威胁
二、web应用安全攻防技术
1、web应用的信息收集
对目标应用web应用服务进行发现与剖析,标示出它的基本轮廓,具体包括服务器域名、IP地址和虚拟IP地址,web服务器端口与其他开放服务,web站点类型版本,web应用程序类型与版本,以及web服务器和web应用程序中存在的安全漏洞信息等。
- 手工审查web应用程序结构与源码
浏览web应用的各个页面,菜单,目录,查看关键页面源代码,并收集以下信息
(1)静态和动态生成的网页
(2)目录结构
(3)辅助性文件
(4)输入表单
(5)查询参数字符串 - 自动下载与镜像web站点页面
- 使用Google Hacking技术审查与探测web应用程序
使用Google搜索引擎或其他Google应用,在web站点中的配置、计算机代码及包含数据中寻找安全漏洞与敏感信息的计算机黑客技术。 - web应用程序安全评估与漏洞探测
web应用程序安全辅助分析工具主要包括一下三种类型
(1)浏览器插件
(2)免费工具集
(3)商业web应用安全评估系统和漏洞扫描器
2、攻击web服务器软件
- 数据驱动的远程代码执行安全漏洞
缓冲区溢出,不安全指针,格式化字符串等一系列数据驱动安全漏洞的远程渗透攻击。 - 服务器功能扩展模块漏洞
- 样本文件安全漏洞
- 源代码泄露
- 资源解析攻击
3、攻击web应用程序
web应用程序攻击角度
(1)针对认证机制的攻击
(2)授权机制的攻击
(3)客户端攻击
(4)命令执行攻击
(5)信息暴漏
(6)逻辑攻击
4、攻击web数据库
- 安全敏感数据泄露
- 网站篡改
- 不良信息内容上传
5、web应用安全防范手册
- web站点网络传输安全设防措施
- web站点操作系统及服务安全设防措施
- web应用程序安全设防措施
- web站点数据安全设防措施
三、SQL注入
代码注入根据攻击目标分为以下几种:
- 恶意读取、修改与操纵数据库的SQL注入攻击
- 在web服务器端安装、执行webshell等恶意脚本的PHP注入或ASP注入攻击
- 在web服务器端恶意执行操作系统命令的shell注入攻击
- 其他多种多样的注入攻击,如LDAP注入,邮件命令注入,空字节注入,SSI注入,XPath注入,XML注入,XQuery注入等。
1、SQL注入攻击原理
利用web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。是由于用户输入没有被正确的过滤以消除SQL语言中的字符串转义字符。
原理是向web应用程序提供的用户输入接口输入一段惊心构造的SQL查询命令,攻击和利用不完善的输入验证机制,使得输入代码得以执行完成非预期的攻击操作行为。
2、SQL注入攻击步骤和过程
(1)发现SQL注入点
(2)判断后台数据库类型
(3)后台数据库中管理员用户口令字猜解
- 猜解表名
- 猜解字段名
- 用户名与口令猜解
(4)上传ASP后门,得到默认账户权限
(5)本地权限提升
(5)利用数据库扩展存储过程执行Shell命令
3、SQL注入攻击工具
自动化的SQL注入攻击工具,能够代替人工实施URL探测,提升攻击效率,如Wposion能够在动态Web文档中找到SQL注入漏洞;wieliekoek.pl能够以并以网站镜像工具生成的输出为注入,找含有表单页面,允许在配置文件中对注入字符串进行修改进行SQL注入漏洞探测。
4、SQL注入攻击防范措施
(1)适用类型安全(type-safe)的参数编码机制
(2)凡是来自外部的用户输入,必须进行完备检查
(3)将动态SQL语句替换为存储过程、预编译SQL或ADo命令对象
(4)加强SQL数据库服务器的配置与连接
四、XSS跨站脚本攻击
XSS跨站脚本攻击的最终目标不是提供服务的web应用程序,而是使用web应用程序的用户。
1、XSS攻击技术原理
XSS攻击的根源同样是web应用程序对用户输入内容的安全验证与过滤不够完善,一旦web应用程序对输入的合法性进行有效检查与过滤,就很有可能让这些恶意代码逻辑包含在服务器动态产生或更新的网页中。
2、XSS攻击类型
-
持久性XSS漏洞--持久性XSS攻击。
最为严重的XSS漏洞,又称为存储性XSS漏洞。 -
非持久性XSS漏洞--非持久性XSS 攻击
最为普遍的类型,由于缺乏恰当的请求数据安全验证与过滤
3、XSS攻击实例
(1)测试XSS漏洞
(2)显示用户的会话Cookie
(3)窃取用户的会话Cookie
(4)利用Cookie信息假冒其他用户发表与修改帖子
(5)编写实现XSS蠕虫
4、XSS攻击防范措施
(1)服务器端防范措施
- 输入验证
- 输出净化
- 消除危险的输入点
(2)客服端防范措施
提高浏览器访问非受信网站时的安全等级、关闭Cookie功能或设置Cookie只读。
第12章 Web浏览器安全攻防
一、Web浏览器的技术发展与安全威胁
1、Web浏览器技术发展
- 浏览器技术发展
从开始实现简单的HTTP客户端、HTML解析与渲染功能,到后来的图形界面浏览器软件,并逐步提升了对图片、音视频等多媒体的支持,通过XML对结构化信息的输入、存储与展现功能的支持,以及引入客户端执行机制、与服务器的异步交互以及浏览器可扩展性机制,逐步进化出现代的浏览器。 - 现代Web浏览器的基本结构机理
目前浏览器要求能够支持HTML和XHTML、CascadingStyle Sheets、ECMAScript及W3C Doucument Object Model等一系列标准。
2、Web浏览的安全与威胁
- Web浏览器软件的安全困境三要素
复杂性、可扩展性、连通性三个方面 - Web浏览安全威胁位置
(1)针对传输网络的网络协议安全威胁
(2)针对Web浏览端系统平台的安全威胁
(3)针对Web浏览器软件及插件程序的渗透攻击威胁
(4)针对互联网用户的社会工程学攻击威胁
二、Web浏览端的渗透攻击威胁
1、网页木马安全威胁的产生背景
- 网页木马的产生与发展背景
- 网页木马发展与流行的驱动力--黑客地下经济链
- 网页木马存在的技术基础--Web浏览端安全漏洞
2、网页木马机理分析
- 网页木马定义特性
- 对网页木马机理的全方位分析与理解
- 网页木马的本质核心--浏览器渗透攻击
- 网页挂马机制
(1)内嵌HTML标签
(2)恶意Script脚本
(3)内嵌对象链接
(4)ARP欺骗挂马 - 混淆机制
3、网页木马的检测与分析技术
- 基于特征码匹配的传统检测方法
- 基于统计与机器学习的静态分析方法
- 基于动态行为结果判定的检测方法
- 基于模拟浏览器环境的动态分析检测方法
教材学习中的问题和解决过程
视频学习中的问题和解决过程
一、KaliSecurity - 漏洞分析之数据库评估(一)
1、BBQSql
这是一个Python编写的盲注工具,当检测可疑的注入漏洞时会很有用,同时也是一个半自动工具,允许客户自定义参数。如下图所示,打开BBQSql根据要设置的内容输入相应参数
2、DBPwAudit(数据库用户名密码枚举工具)
使用方法DBPwAudit -s <server> -d <db> -D <driver> -U <users> -P <passwords> [options]
使用参考如下:
破解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(字典)
3、HexorBase
图形化的密码破解与连接工具,开源。连接并控制数据库,执行一些语句等等。如下图所示
4、Jsql Injection
轻量级安全测试工具,可以检测SQL注入漏洞。跨平台、开源且免费将存在注入漏洞的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、SQLdict
用户名密码枚举工具,通过Wine运行,原来是Windows下的工具,在kali下通过Wine模拟。
二、Kali漏洞分析之数据库评估二
1、tnscmd10g
2、Sqlsus
开放源码的Mysql注入和连接管工具,使用Perl编写,基于命令行界面。sqlsus可以获取数据库结构,注入你自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等等。最好用的两点就是注射获取数据速度非常快,另外一个就是自动搜索可写目录。使用方法如下
-
首先生成配置文件如下图
-
编辑配置文件:
修改our ¥url——start = "";写入地址 -
启动并且测试
sqlsus test.conf
-
获取数据库数据
-
查看全部数据库名字
sqlsus>get database
-
设定数据库
-
获取表
3、Sqlninja
Perl编写的一个专门针对Microsoft SQL Server
的sql注入工具。侧重于获得一个shell
- 可找到远程SQL服务器的标志和特征
- “sa”口令的强力攻击
- 原始
xp_cmdshell
被禁用后,就创建一个定制的xp_cmdshell
- 使用纯粹的ASCII GET/POST请求来上载netcat.exe程序,不需要FTP连接
- 为了找到目标网络的防火墙所允许端口,可以实施针对目标SQL服务器的TCP/UDP端口扫描
- 逃避技术
- 盲目执行攻击模式
- 如果得到权限为sa,结合msf进一步对目标主机进行渗透
4、Sqlmap
开源渗透测试工具,Python编写,主要用于自动化的侦测和实施SQL注入攻击以及渗透数据库服务器。SQLmap配有强大的侦测引擎,是用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,还可以从数据库中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。
三、Kali漏洞分析之Web应用代理
1、Burp Suite
用于攻击web应用程序的集成平台,它有一个代理,通过默认端口8080上运行,使用这个代理,我们可以截获并修改从客户端到web应用程序的数据包。
2、OWASP ZAP
3、Paros
是一个对web应用程序的漏洞进行评估的代理程序,是一个基于Java的web代理程序,可以评估web应用程序的漏洞。
第五周进度
基本完成了教材的学习,视频上一些工具的介绍只是简单的学习了解了,具体还需要多去实践才能掌握