《网络攻防》- 学习心得
教材学习内容总结
WEB应用程序安全
Web应用体系结构及安全威胁
web应用体系结构
“瘦”客户端:浏览器,完成数据显示与展示内容的渲染功能;
“胖”服务器:web服务器软件、web应用程序、后端数据库。
通过经典三层架构:表示层、业务逻辑层和数据层来组织和构建。
传输协议HTTP/HTTPS
1)超文本传输协议HTTP无状态、ASCII码明文传输、运行于众所周知的TCP80端口。特点:简单、流行、易受攻击。
2)加密传输的HTTPS协议,使用ssl/tls隧道技术,采用多种认证协议实现对用户身份的人认证与控制。
web应用安全威胁
1)针对浏览器和终端用户的web浏览安全威胁:以浏览器渗透攻击为核心的网页木马、网站钓鱼。
2)针对传输网络的网络协议安全威胁:针对HTTP明文传输的敏感信息监听、假冒身份攻击、拒绝服务攻击等。
3)系统层安全威胁:远程渗透攻击和本地渗透攻击温威胁。
4)web服务器软件安全威胁:利用漏洞实施渗透攻击、获取敏感信息。
5)web数据安全威胁:窃取、篡改、输入不良信息。
Web应用程序安全攻防技术概述
信息收集内容包括:
服务器域名
ip地址和虚拟ip地址
web服务器端口与其他开放服务
web站点类型和版本
web应用程序类型和版本
web服务器和web应用程序中存在的安全漏洞信息
方式包括:
手工审查web应用程序结构与源代码
自动下载与镜像web站点页面:lynx、wget、teleportpro、offline explorer等web站点镜像软件。
使用google hacking技术审查与探测web应用程序
web应用程序安全评估与漏洞探测:浏览器插件、免费工具集、商业web应用安全评估系统和漏洞扫描器。
Web服务器平台安全漏洞
数据驱动的远程代码执行安全漏洞
服务器功能拓展模块漏洞
样本文件安全漏洞
源代码泄露
资源解析攻击
Web应用程序安全威胁从攻击者技术角度分为如下六类:
针对认证机制攻击
授权机制攻击
客户端攻击
命令执行攻击
信息暴露
逻辑攻击
最流行的的两类Web应用程序安全漏洞及攻击技术:SQL注入和XSS跨站脚本。攻击Web数据内容:安全敏感数据泄露、网站内容遭到篡改以及不良信息内容上传威胁。
Web应用安全防范措施
1)web站点网络传输安全防范措施
使用HTTPS
使用加密连接通道、对关键Web服务器设置静态绑定MAC-IP映射。
2)Web站点操作系统及服务安全设防措施
及时的补丁更新
进行远程安全漏洞扫描
关闭不使用的服务
设置强口令字
部署防火墙
数据备份
3)Web应用程序安全设防措施
使用静态HTML
使用具有良好安全声誉及稳定技术支持力量的Web应用软件包
除非必要才使用自主或者外包Web应用程序
使用Web服务器软件提供的日志功能。
4)Web站点数据安全设防措施
提高维护人员数据安全意识
对维护网站数据安全实施日常监测和防护
SQL注入
本节讲了什么是SQL注入、种类以及原理(课本举了两个例子进行说明):
利用web应用程序的输入验证不完善漏洞,使得web应用程序执行由攻击者所注入的恶意指令和代码,造成敏感信息泄露、权限提升或对系统的未授权访问等危害后果。
SQL注入攻击步骤
发现SQL注入点
判断后台数据库类型
后台数据库中管理员用户口令字猜解
上传ASP后门,得到默认账户权限
本地权限提升
利用数据库扩展存储过程执行Shell命令
SQL注入攻击工具
Wposion 能在动态web文档中找出SQL注入漏洞
wieliekoek.pl 以网站镜像工具生成的输入为输出,对表单页面注入字符串修改
SPIKE Proxy 对待注入的字符串进行定制
SPI Toolkit工具包
对抗 SQL 注入
SQL 注入漏洞的根本原因是没有将代码和数据区分开。当组建一个 SQL 语句时,程序 (如 PHP 程序)知道哪个部分是代码哪个部分是数据。不幸的是当 SQL 语句送往数据库执 行时,这个边界被打破,当程序被注入时,SQL 解释器看到的边界可能和最初的边界不一 样。为了解决这个问题,保持服务端程序和数据库看到的边界一样就十分重要。
XSS跨站脚本攻击
测试漏洞 很简单,请你登录到论坛后发布一个帖子,帖子中包含以下内容: 然后打开包含有你发布的帖子的页面——是否看到一个弹出的窗口呢?
在消息窗口中显示 Cookie 现在我们已经可以成功地弹出一个窗口,那么我们在窗口里显示一些更有用的信息,比 如你的 Cookie。 请你再来发布一个帖子,包含以下内容: Hello Everybody, Welcome to this message board. 和前面一样浏览你的帖子,你将看到一个弹出的窗口。
获得受害主机的 Cookie 原理我们在错误!未找到引用源。节中已经介绍的很清楚了。下面我们具体说一下如何 实现: 首先,在前文中提到的可以将用户的 HTTP 请求输出在屏幕上的应用已经在你的机器里。 你可以在 Desktop/echoserver/中找到 echoserv 软件,运行方式为:
seed@seed-desktop:~/ Desktop/echoserver$ ./echoserv 4444 & 其中 4444 是端口号,要和我们在发帖时指定的源路径端口号一致。 然后我们发布帖子,并包含以下信息: 登出后以另一用户重新登录,访问该帖,你将会在运行 echoserv 的终端上看到这个受 害主机的 Cookie。
利用 Cookie 仿冒受害主机在仿冒受害主机前,我们需要了解 phpBB 是怎样发布帖子的。我们可以利用 LiveHTTPHeaders 来得到发消息时用户向服务器所发送的具体 HTTP 请求信息,从而进行分 析。LiveHTTPHeaders 已经在 VM 镜像中安装好。选中一个请求,然后点击 Replay 即可看 到详细的信息。 我们的任务是,利用得到的用户的 Cookie 假冒用户进行发帖和用户原始消息的修改。 由于 phpBB 的限制,用户只有当登录时才可以进行消息的更改和发布,所以我们的任务按 照如下的流程进行: 1. 登录到 phpBB 中,发表信息并用 LiveHTTPHeaders 得到该信息的发表请求。 2. 从发表请求中抽取用户的 Cookie 信息和发布消息内容,进行修改 3. 编写 Java 程序,实现向服务器发送 HTTP 请求。 4. 将修改好的消息和 Cookie 信息通过 Java 程序发送到服务器 5. 刷新页面,你将看到修改后的信息。 6. 尝试仿冒用户发布新的消息,而不是修改用户曾经发布的消息 其中,大家可以参考 11.4.3 节 XSS 攻击实例(4)利用 Cookie 信息假冒其他用户发表与修改帖 子中所提供的 Java 程序。
与代码注入攻击不同的是,XSS跨站脚本攻击的最终目标不是提供服务的web应用程序,而是使用web应用程序的用户。
XSS攻击技术原理
是Web应用程序对用户数输入内容的安全验证与过滤不完善。
攻击方式
绕过客户端安全策略访问敏感信息,窃取或修改会话Cookie、进行客户端渗透攻击获取访问权。
XSS攻击类型
持久性XSS漏洞和非持久性XSS漏洞,利用这两类漏洞的攻击也称为持久性XSS攻击和非持久性XSS攻击。
攻击实例:测试XSS漏洞、显示用户的会话cookie、窃取用户的会话cookie、利用cookie信息假冒其他用户发表与修改帖子、编写实现XSS蠕虫。
XSS攻击防范措施
服务器端:输入验证、输出净化、消除危险的输入点。