HTTP攻击与防范-跨站攻击-01简介
实验目的
1、掌握WEB渗透测试跨站攻击原理
2、了解WEB站点的跨站攻击脆弱性
3、修复存在跨站攻击可能的漏洞
实验原理
XSS又叫CSS (Cross Site script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码, 当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。
实验内容
1、掌握跨站攻击的基本原理
2、了解WEB站点的脆弱性-XSS
3、通过掌握的只是能够修复XSS的漏洞
实验环境描述
实验环境 VPC1(虚拟PC) 操作系统类型:windows,网络接口:本地连接 VPC1 连接要求 PC 网络接口,本地连接与实验网络直连 软件描述 1、学生机要求安装java环境 2、vpc安装windows 实验环境描述 1、学生机与实验室网络直连; 2、VPC1与实验室网络直连; 3、学生机与VPC1物理链路连通;
实验步骤
1.学生进入系统后打开虚拟机,输入用户名和密码,用户为admin密码为 123456 
2.进入系统后,首先打开xampp工具,手动开启apache与MySQL服务器

3.开IE浏览器,输入http://localhsot:8080/xss/ ,即可登录如图所示页面:

4.我们使用的跨站脚本演示环境如下:

5.查看跨站脚本演示目录的结构,点击开始->运行->输入cmd,打开命令提示符

6.进入dos窗口,输入:cd c:\xampp\htdocs\xss

7.查看代码文档结构树,输入命令如下:tree /f

8.查看文档info.php代码,输入命令如下:type info.php

9.查看文档index.php代码,输入命令如下:type index.php

10.切换到IE浏览器窗口

11.演示反射型跨站脚本攻击漏洞: 正常情况下,用户会在URL中提交参数name的值为自己的姓名,然后该数据内容会通过以上代码在页面中展示,如用户提交姓名为“张三”,完整的URL地址如下: www.sql.com:8080/xss/info.php?name=张三 点击”反射型XSS跨站脚本攻击漏洞”,在浏览器中访问时,会显示如下图1所示内容:

12、此时,因为用户输入的数据信息为正常数据信息,经过脚本处理以后页面反馈的源码内容为。
<p>欢迎您, 张三!</p>
但是如果用户提交的数据中包含有可能被浏览器执行的代码的话,会是一种什么情况呢? 我们继续提交name的值为
'<script>alert我的名字是张三</script>'
即完整的URL地址为
/www.sql.com:8080/xss/info.php?name=<script>alert我的名字是张三</script>
我们点击后退按钮,进入xss跨站攻击演示环境

13.我们点击“反射型XSS跨站脚本攻击”链接,在浏览器中访问时,我们发现会有弹窗提示,如下图所示:

14、那么此时页面的源码又是什么情况呢? 源码变成了
“<p>欢迎您, <script>alert我的名字是张三</script>!</p>”
从源代码中我们发现,用户输入的数据中,
script与/script标签中的代码被浏览器执行了,而这并不是网页脚本程序想要的结果。 这个例子正是最简单的一种XSS跨站脚本攻击的形式,称之为反射型XSS。
15、在对一个网站进行安全检测的时候,检测者并不知道被检测的网站使用的是什么数据库及网页程序语言,需要对其进行一些手动探测。
点击刚才弹出的窗口“确定”按钮。

16.点击后退按钮,进入xss跨站攻击演示环境

17.切换到dos窗口,我们查看一下“基于DOM的XSS跨站脚本攻击”的演示环境代码

18.输入命令,type DOM_Based_XSS_Demo.php

19.切换到IE浏览器窗口

20.我们点击“基于DOM的XSS跨站脚本攻击”链接

21.以上代码的作用是提交一个图片的URL地址以后,程序会将图片在页面中进行展示,如我们提交http://127.0.0.1:8080/dvwa/的LOGO图片的地址: http://127.0.0.1:8080/dvwa/dvwa/images/login_logo.png,那么在页面中展示结果如下图所示。

22.当用户输入完http://127.0.0.1:8080/dvwa的LOGO的地址,点击“提交”按钮后,“提交”按钮的onclick事件会调用xsstest()函数。
而xsstest()函数会获取用户提交的地址,通过innerHTML将页面的DOM节点进行修改,把用户提交的数据以HTML代码的形式写入页面中并进行展示。
以上例子中输出的HTML代码为
"<img src="http://127.0.0.1:8080/dvwa/dvwa/images/login_logo.png"></img>"

23.以上情况为正常的用户输入情况,那黑客又是怎么利用该种类型代码实现XSS跨站脚本攻击的呢?
黑客可以通过构造如下数据,输入: #' onerror=' javascript:alert(/DOM Based XSS Test/),
在浏览器中提交后,发现代码果然被执行,出现了弹窗提示,如下图所示。

24、实验完毕,关闭虚拟机和所有窗口。
HTTP攻击与防范-跨站攻击-01简介的更多相关文章
- XSS与CSRF两种跨站攻击比较
XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求伪造(Cross-site request forgery) 在那个年代,大家一般用拼接字符串的方式来构造动态SQL 语 ...
- xss(跨站脚本攻击),crsf(跨站请求伪造),xssf
我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...
- 总结 XSS 与 CSRF 两种跨站攻击
前言 在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了 ...
- Http的会话跟踪和跨站攻击(xss)
会话跟踪 什么是会话? 客户端打开与服务器的连接发出请求到服务器响应客户端请求的全过程称之为会话. 什么是会话跟踪? 会话跟踪指的是对同一个用户对服务器的连续的请求和接受响应的监视. 为什么需要会话跟 ...
- 总结XSS与CSRF两种跨站攻击
XSS:跨站脚本(Cross-site scripting),实际应是"CSS",但由于和层叠样式表CSS名称冲突,故改为"XSS" CSRF:跨站请求伪造(C ...
- XSS 与 CSRF 两种跨站攻击
在前几年,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式, 但是现在参数化查询 已经成了普遍用法,我们已经离 SQL 注入很远了.但是历史同样悠久的 ...
- XSS/CSRF跨站攻击和防护方案
Xss(Cross Site Scripting 跨站脚本攻击)/CSRF(Cross-site request forgery 跨站请求伪造),它与著名的SQL注入攻击类似,都是利用了Web页面的编 ...
- XSS与CSRF两种跨站攻击总结
在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了.但是 ...
- 快速对字符转义,避免跨站攻击XSS
XSS已经成为非常流行的网站攻击方式,为了安全起见,尽量避免用户的输入.可是有些情况下不仅不避免,反而要求鼓励输入,比如写博客.博客园开放性很高,可以运行手写的JS.之前比较著名的例子就是,凡是看到某 ...
随机推荐
- 利用栈实现括号匹配(python语言)
原理: 右括号总是与最近的左括号匹配 --- 栈的后进先出 从左往右遍历字符串,遇到左括号就入栈,遇到右括号时,就出栈一个元素与其配对 当栈为空时,遇到右括号,则此右括号无与之匹配的左括号 当最终右括 ...
- Manacher算法求解回文字符串
Manacher算法可以在\(O(N)\)时间内求解出一个字符串的所有回文子串(正反遍历相同的字串). 注:回文串显然有两种,一种是奇数长度,如abczcba,有一个中心字符z:另外一种是偶数个长度, ...
- AXAJ基础知识学习
AXAJ基础知识学习 博客首页 Ajax简介 ajxa全称是Asynchronous Javascript And XML ,就是异步的JS 和XML 通过Ajax可以再浏览器中向服务器发送异步请求, ...
- centos6.6手动安装mysql5.5并配置主从同步
0.实验环境 主机IP(Master) 192.168.61.150 centos6.6 从机IP(Slave) 192.168.61.157 centos6.6 1.查看centos系统版本 [ ...
- Android系统编程入门系列之硬件交互——通信硬件NFC
在上篇文章介绍了接入式USB硬件的简单使用,接下来将介绍不依赖物理连接的硬件通信了.本文的重点是近距离通信的硬件NFC. NFC硬件 应用程序中可以通过NFC硬件读取或发送指定协议的技术实现,在And ...
- Servlet-IDEA菜单生成Servlet程序
更快捷方法生成Servlet程序(IDEA菜单生成Servlet) 菜单:new ---> Servlet程序 取消注解做这个配置 可以创建Servlet程序,编写HelloServlet3类, ...
- java-异常-原理异常对象的抛出throw
1 class Demo { 2 public static int method(int[] arr,int index) { 3 4 // System.out.println(arr[index ...
- 前缀函数与Z函数介绍
字符串算法果然玄学=_= 参考资料: OI Wiki:前缀函数与KMP算法 OI Wiki:Z函数(扩展KMP) 0. 约定 字符串的下标从 \(0\) 开始.\(|s|\) 表示字符串 \(s\) ...
- System.arraycopy()的用法?
1.使用方法 public void arr(Object arr1, int x, Object arr2, int y, int length) arr1 : 源数组; x: 需要从源数组要复制的 ...
- Sweetalert模态对话框与Swiper轮播插件、Bootstrap样式组件、AdminLTE后台管理模板地址
Sweetalert纯JS模态对话框插件地址:http://mishengqiang.com/sweetalert/ AdminLTE后台管理模板系统地址(基于Bootstrap):https://a ...