20211915 2022-2023-2 《网络攻防实践》实践十报告
1.实验内容
Web服务是独立的,模块化的应用程序,可以通过通常是万维网的网络进行描述,发布,定位和调用。
Web服务体系结构描述了三个角色:服务提供者,服务请求者和服务代理。 和三个基本操作:发布,查找和绑定。 网络组件可以扮演任何或所有这些角色。
两个单独的文档描述了Web服务:定义良好的服务(WDS)文档描述了非运营服务信息,例如服务类别,服务描述和到期日期,以及有关服务提供商的商业信息,例如公司名称,地址,和联系信息。 网络可访问服务规范语言(NASSL)文档描述了有关服务的操作信息,例如服务接口,实现细节,访问协议和联系端点。
Web服务体系结构的实现应允许通过配置一组环境先决条件(例如,身份验证机制,计费等)来控制和管理交互,从而促进增量安全性和服务质量模型。
Web Services可以动态地组合成基于运行时基于功能的查找的应用程序,而不是传统的静态绑定。协作的动态性质使实现可以独立于平台和编程语言,并且与通信机制无关,同时创建创新的产品,流程和价值链。
一个 Web 应用程序是由完成特定任务的各种 Web 组件(web components)构成的并通过 Web 将服务展示给外界。在实际应用中,We b应用程序是由多个 Servlet、JSP 页面、HTML 文件以及图像文件等组成。所有这些组件相互协调为用户提供一组完整的服务。
XSS漏洞
一、XSS漏洞原理
XSS,即跨站脚本攻击,是指攻击者利用Web服务器中的应用程序或代码漏洞,在页面中嵌入客户端脚本(通常是一段由JavaScript编写的恶意代码,少数情况下还有ActionScript、VBScript等语言),当信任此Web服务器的用户访问Web站点中含有恶意脚本代码的页面或打开收到的URL链接时,用户浏览器会自动加载并执行该恶意代码,从而达到攻击的目的。
当应用程序没有对用户提交的内容进行验证和重新编码,而是直接呈现给网站的访问者时,就可能会触发XSS攻击。
二、XSS漏洞的危害
(1)窃取管理员帐号或Cookie。入侵者可以冒充管理员的身份登录后台,使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。
(2)窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作。
(3)网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。
(4)发送广告或者垃圾信息。攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用。
三、XSS漏洞的分类
1、反射型XSS
反射型XSS,也称为非持久性XSS,是最常见的一种XSS。
XSS代码常常出现在URL请求中,当用户访问带有XSS代码的URL请求时,服务器端接收请求并处理,然后将带有XSS代码的数据返回给浏览器,浏览器解析该段带有XSS代码的数据并执行,整个过程就像一次反射,故称为反射型XSS。
该类攻击的主要特点是它的及时性和一次性,即用户提交请求后,响应信息会立即反馈给用户。该类攻击常发生在搜索引擎、错误提示页面等对用户的输入做出直接反应的场景中。
2、存储型XSS
存储型XSS,也称为持久性XSS。
在存储型XSS中,XSS代码被存储到服务器端,因此允许用户存储数据到服务器端的Web应用程序可能存在该类型XSS漏洞。攻击者提交一段XSS代码后,服务器接收并存储,当其他用户访问包含该XSS代码的页面时,XSS代码被浏览器解析并执行。
存储型XSS攻击的特点之一是提交的恶意内容会被永久存储,因而一个单独的恶意代码就会使多个用户受害,故被称为持久性XSS,它也是跨站脚本攻击中危害最的一类。二是被存储的用户提交的恶意内容不一定被页面使用,因此存在危险的响应信息不一定被立即返回,也许在访问那些在时间上和空间上没有直接关联的页面时才会引发攻击,因此存在不确定性和更好的隐蔽性。
这类攻击的一个典型场景是留言板、博客和论坛等,当恶意用户在某论坛页面发布含有恶意的Javascript代码的留言时,论坛会将该用户的留言内容保存在数据库或文件中并作为页面内容的一部分显示出来。当其他用户查看该恶意用户的留言时,恶意用户提交的恶意代码就会在用户浏览器中解析并执行。
3、DOM型XSS
DOM (Document Objet Model)指文档对象模型。
DOM常用来表示在HTML和XML中的对象。DOM可以允许程序动态的访问和更新文档的内容、结构等。客户端JavaScript可以访问浏览器的文档对象模型。也就是说,通过JavaScript代码控制DOM节点就可以不经过服务器端的参与重构HTML页面。
该类攻击是反射型XSS的变种。它通常是由于客户端接收到的脚本代码存在逻辑错误或者使用不当导致的。比如Javascript代码不正确地使用各种DOM方法(如document.write)和Javascript内部函数(如eval函数),动态拼接HTML代码和脚本代码就容易引发DOM型的跨站脚本攻击。
因此,DOM型XSS与前面两种XSS的区别就在于DOM型XSS攻击的代码不需要与服务器端进行交互,DOM型XSS的触发基于浏览器端对DOM数据的解析来完成,也就是完全是客户端的事情。
2.实验过程
首先打开apache服务器,使用命令 mysql -u root -p登录数据库。
命令show databases; use Users;切换到Users数据库。命令show tables;
随后终端内继续分别键入命令:use Users;和show tables。表示查看数据库下面的表:
使用指令select * from credential;来打印所有员工的信息
输入一个任意的用户名和密码
按F12查看表单
根据提示输入命令获得用户名和密码
因为是永真句,所以不用密码直接登陆
以下是登陆结果
对UPDATE语句的SQL注入攻击
打开如下页面,可以利用漏洞,对admin工资经行修改,修改前的工资为40000
点击如图所示,进入界面
更新,下载uploading
发现update语句存在漏洞,构造nickname的输入为’,Salary=‘1915’ where name=‘Admin’; 则将会admin的salary更改为1915。
SEED XSS跨站脚本攻击实验
登入Alice账号,密码seedalice。点击deit profile按钮,在brief description文本框输入语句然后点击保存。
弹窗显示cookie信息
在brief description中输入攻击代码
窃取受害者的cookies
查询ubuntu的ip地址为192.168.200.2 。本次实验将以本地主机为攻击者,窃取受害者的cookies。
如图所示,显示cookie信息
成为防守方的friend
尝试着添加好友。在Alice账号中添加Boby的好友,按F12查看信息。
登录Boby页面,可以看到已经添加Alice为好友
编写XSS蠕虫
在Alice账户的edit profile 的about me文本框中以写入如下代码并保存。
Boby已被入侵
A和B相互访问后,会被感染,获得用户名和密码,admin账户密码为 seedelgg。
3.学习中遇到的问题
安装ubuntu时,需要将隐藏的文件打开,显示vmx才可安装
4.实践总结
学习了sql注入和xss的基本原理,对于攻击有了更深的理解。