20199135 2019-2020-2 《网络攻防实践》第11周作业
学号 2019-2020-2 《网络攻防实践》第11周作业
问题 | 回答 |
---|---|
作业所属课程 | 网络攻防实践(https://edu.cnblogs.com/campus/besti/19attackdefense) |
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10737 |
我在这个课程的目标是 | 学习第十一章 |
这个作业在哪个具体方面帮助我实现目标 | 熟悉linux环境 |
作业正文 | 见下文 |
参考文献 | 见博客结尾 |
1.实践内容
11.1 Web应用程序体系结构及其安全威胁
11.1.1 Web应用体系结构
Web应用程序(Web Application)是-种使用浏览器在互联网或企业内部网上进行访问操作的应用软件形态。
Web应用的体系结构
•浏览器(Browser)
标准的Web客户端就是我们所熟知的浏览器,如IE、Firefox> Chrome等,它们都使用HTTP/HTTPS协议、HTML语言和Web服务器进行交互,获取Web服务器上的信息和 应用服务。
• Web 服务器(Webserver)
Web服务器软件通常被简单地描述为HTTP守护程序,接收Web客户端对资源的请求, 在这共请求执行一些基本的解析处理以确定资源的存在,然后将它传送给Web应用程序来执行,待Web应用程序执行完逻辑并返回响应时,Web服务器再将这个响应返回给Web 客户端,在浏览器上进行本地执行、渲染和展示。
• Web 应用程序(Web Application)
现代Web应用的核心是处于服务器端的业务逻辑,即Web应用程序,虽然嵌入在浏览器中执行的客户端逻辑(如JavaScript代码、Flash/Java等对象)也逐渐地变得史加普遍和重要。
•数据库(Database)
数据库有时也被称为"后台”,是Web应用存储数据的地方,数据层也作为Web应用程序多级结构中的最后一层。
•传输协议HTTP/HTTPS
浏览器和由Web服务器、Web应用程序和数据库所构成的Web站点之间的通信传输 协议是HTTP/HTTPS协议。
11.1.2 Web应用安全威胁
•针对浏览器和终端用户的Web浏览安全威胁。
•针对传输网络的网络协议安全威胁。
•系统层安全威胁。
•Web服务器软件安全威胁。
•Web应用程序安全威胁。
•Web数据安全威胁。
11.2 Web应用安全攻防技术概述
11.2.1 Web应用的信息收集
针对Web应用的攻击需要首先进行信息情报的收集,对目标Web应用服务进行发现与剖析,标识出它的基本轮廓,具体包括服务器域名、1P地址和 虚拟IP地址,Web服务器端口与其他开放服务,Web站点类型和版本,Web应用程序类型与版本,以及Web服务器和Web应用程序中存在的安全漏洞信息等。
•手工审査Web应用程序结构与源代码
(1)静态和动态生成的页面
(2)目录结构
(3)辅助性义件
(4)输入表単
(5)査询参数字符串
•自动下载与镜像Web站点页面
逐个手工地审査分析Web站点页面源代码往往是很烦琐低效的,在Linux系统上,可以使用lynx (一个基于文木的浏览器,提供快速浏览站点的方法)、wget等工具,而在Windows系统上, 有像TclePort Pro、Offline Explorer等功能强大的Web站点镜像软件,在没有安装其他专业镜像软件时的替代方法。
•使用Google Hacking技术审査与探测Web应用程序
作为全球最流行的搜索引擎,Google的网页爬虫程序Googlebot几乎爬遍万维网公开开放的Web站点,收集到数以万亿计数的Web页面和资源,并由Google搜索引擎对这些Web站点和页血进行在线搜索。
• Web应用程序安全评估与漏洞探测
在获得目标Web站点应用程序入口点、源代码和-些关键信息之后,渗透测试人员还 通常会对冃标应用程序的各个七要功能做一次深入的研究和评佔,最终目的是为了透彻理 解目标应用程序的体系结构和设计思路,找出可能存在的薄弱环节,最后再循序渐进地总结出针对这个Web应用程序的详细攻击步骤。
11.2.2攻击Web服务器软件
Web服务器平台中的安全漏洞主要分为如下几大类。
•数据驱动的远程代码执行安全漏洞
•服务器功能扩展模块漏洞
•样本文件安全漏洞
•源代码泄露
•资源解析攻击
11.2.3攻击Web应用程序
Web应用程序安全威胁从攻击技术角度分为如下6类。
(1) 针对认证机制的攻击:针对用来确认用户、服务或应用身份机制的攻击手段,包括暴力枚举、利用认证机制不完善弱点、攻击口令恢复验证机制等;
(2) 授权机制的攻击:针对用来确定用户、服务或应用是否具有执行请求动作必须权限机制的攻击手段,包括信任/会话预测、利用授权机制不完善弱点、利用会话失效机制不 完善弱点、会话身份窃取攻击等;
(3) 客户端攻击:扰乱或者渗透攻击Web站点客户端用户的攻击手段,包括内容欺骗、 跨站脚本攻击等;
(4) 命令执行攻击:在Web站点上执行远程命令的攻击手段,包括缓冲区溢出、格式化字符串、LDAP注入、操作系统命令注入、SQL注入、SSI (Server-Side Include)注入等;
(5) 信息暴露:获取Web站点具体系统信息的攻击手段,包括目录列举、信息泄露、 路径遍历、资源位置可预测等;
(6) 逻辑攻击:扰乱或者渗透攻击Web应用逻辑流程的攻击手段,包括功能滥用、拒 绝服务攻击、对抗自动程序不完善、处理验证过程不完善等。
11.2.4攻击Web数据内容
Web站点除了通过服务器软件和应用程序中存在安全漏洞和弱点遭受攻击之外,还面临着针对敏感数据内容的攻击威胁,具体包括安全敏感数据泄露、网站内容遭受篡改,以及不良信息内容。
11.2.5 Web应用安全防范措施
针对上述各种类型Web应用安全威胁、信息收集与攻击技术手段,关注Web应用体系结构中的每个环节设计、部署和实施安全防范措施,才能够有效地缓解Web应用安全威胁,提升Web站点的安全性。
11.3.1 SQL 注入
代码注入是针对Web应用程序的主流攻击技术之一,代码注入攻击通过利用Web应用程序的输入驶证不完善漏洞,使得Web应用程序执行由攻击者所注入的恶意指令和代码,造成敏感信息泄露、权限提升或对系统的未授权访问等危害后果。
代码注入根据攻击目标的不同分为:
•恶意读取、修改与操纵数据库的SQL注入攻击:
•在Web服务器端安装、执行Webshell等恶意脚本的PHP注入或ASP ii:入攻击;
•在Web服务器端恶意执行操作系统命令的Shell注入攻击;
•其他多种多样的注入攻击,如LDAP注入、邮件命令注入、空/廿注入、SSI注入、 XPath注入、XML注入、XQuery注入等。
11.3.2 SQL注入攻击步骤和过程
(1)发现SQL注入点
(2)判断后台数据库类型
(3)后台数据库中管理员用户口令字猜解
一般包括猜解表名、猜解字段名,以及用户名与口令猜解。
(4)上传ASP后门,得到默认账户权限
(5)本地权限提升
(6)利用数据库扩展存储过程执行Shell命令
11.3.3 SQL注入攻击工具
11.3.4 SQL注入攻击实例
11.3.5 SQL注入攻击防范措施
使用类型安全(type-safe)的参数编码机制
凡是来自外部的用户输入,必须进行完备检查
将动态SQL语句替换为存储过程、预编译SQL或ADO命令对象
加强SQL数据库服务器的配置与连接
11.4.1 XSS攻击技术原理
XSS攻击的根源同样是Web应用程序对用户输入内容的安全验证与过滤不够完善,在许多流行的Web论坛、博客、留言本及其他允许用户交互的Web应用程序中,用户提交内容中可以包含HTML、JavaScript及其他脚本代码,而一且Web应用程 序没有对这些输入的合法性进行有效检査与过滤,就很有可能让这些恶意代码逻辑包含在 服务器动态产生或更新的网页中。
而与代码注入不同的是,XSS攻击的最终攻击目标并非Web服务器,Web服务器上的应用程序在XSS攻击场景中发挥的角色是“帮凶”,而非“受害者”,真正的“受害者”则是访问这些Web服务器的其他用户。
11.4.2 XSS攻击类型
持久性XSS漏洞(Persistent Cross Sile Scripting)和非持久性 XSS漏洞(Non-persistent Cross Site Scripting)。
持久性XSS漏洞是危害最为严重的XSS漏洞,它通常出现于一些可以将用户输入持久性地保存在Web服务器端,针对该类漏洞的客户端执行代码还可以被设计成具备跨用户进行自我传播的能力,从而成为XSS蠕虫。
非持久性XSS漏洞(也被称为反射XSS漏洞)则是最为普遍的类型,当Web浏览器在HTTP清求参数或HTML提交表单中提供的数据,被立即由服务器端脚本使用产生一个提供给该用户、的结果页面而缺乏恰当的请求数据安全验证与过滤,那么就很可能存在若干持久性的XSS漏洞。
11.4.3 XSS攻击实例
测试XSS漏洞
显示用户的会话Cookie
窃取用户的会话Cookie
利用Cookie信息
编写实现XSS蠕虫
11.4.4 XSS攻击防范措施
对XSS跨站脚本的防范分为服务器端和客戸端两个方面。
(I)服务器端防范措施
与其他输入验证不完备类型安全漏洞类似,XSS漏洞的首要防范措施是对所有来自外部的用户输入进行完备检查,以“限制、拒绝、净化”的思路来进行严格的安全过滤。
•输入验证
•输出净化
•消除危险的输入点
(2)客户端防范措施
如提高浏览器访问非受信网站时的安全等级、关闭Cookie功能或设置Cookie只读, 此外也可以采用非主流的安全浏览器如Chrome> Opera来尽量降低安全风险。
2.实践过程
课外实践作业一:SEED SQL注入实验
SEED Ubuntu镜像
环境配置Firefox、apache、phpBB2(镜像中已有):
①运行Apache Server:镜像已经安装,只需运行命令%sudo service apache2 start
②phpBB2 web应用:镜像已经安装,通过http://www.sqllabmysqlphpbb.com访问,应用程序源代码位于/var/www/SQL/SQLLabMysqlPhpbb/
③配置DNS:上述的URL仅仅在镜像内部可以访问,原因是我们修改了/etc/hosts文件使http://www.sqllabmysqlphpbb.com指向本机IP 127.0.0.1。如果需要在其他机器访问,应该修改hosts文件,使URL映射到phpBB2所在机器的IP。
关闭对抗措施PHP提供了自动对抗SQL注入的机制,被称为magic quote,我们需要关闭它。
1.找到/etc/php5/apache2/php.ini
2.找到magic_quotes_gpc = On这一行
3.改为magic_quotes_gpc = Off
4.重启Apache:输入命令sudo service apache2 restart
对SELECT语句进行攻击,通过访问虚拟机内的URL:www.sqllabmysqlphpbb.com。在进入phpBB之前系统会要求你登陆。这个登陆认证由服务器上的login.php实现,需要用户输入用户名和密码来通过认证。
去网上寻找了答案,答案的是在用户名输入ted'#,密码空着就行,ted是一个已经存在的用户名,用单引号结束这个字符串,用#转义掉后面的语句。
对UPDATE语句的攻击
当用户想要在phpBB2中修改他们的资料时,可以点击Profile,然后填写表单修改。
用户发送修改请求后,会执行include/usercp_register.php中的一条UPDATE SQL语句。在这条语句中同样有一个SQL注入漏洞,请用它来达到以下目标:在不知道其他人密码的情况下修改其资料。
提交后发现SQL语句的结构,根据分析语句结构,分析出注入漏洞在
查看Memberlist表单,发现id号
通过此漏洞即可通过更改id号更改信息,此处我们修改admin的信息
修改成功。
课外实践作业二:SEED XSS攻击实验
发布包含的帖子:
显示/xss/
帖子中包含cookie信息:
消息窗口显示cookie
3.学习中遇到的问题及解决
- 问题1:修改php.ini遇到权限问题
- 问题1解决方案:输入命令格式错误,改为sudo gedit /etc/......就可以了
4.实践总结
本章概述了 Web应用体系结构各个层面上所面对的安全威胁,以及针对Web应用的攻击渠道,包括针对Web应用的信息收集,攻击Web服务器软件,攻击 Web应用程序和攻击Web数据内容。
SQL注入与XSS跨站脚本攻击是目前最流行的Web 应用程序攻击技术,本章详细讲解了这两类攻击。