实验目的

1.了解XSS -跨网站脚本攻击带来的危险性。 2.掌握XSS -跨网站脚本攻击的原理与方法 3.掌握防范攻击的方法

实验原理

跨网站脚本攻击之所以会发生,是因为网站的Web应用程序对用户的输入数据没有进行检验。黑客将攻击用的JavaScript程序代码加在HTTP链接的后面,Web应用程序直接执行这个HTTP链接,因而让攻击用的JavaScript程序代码被启动。

实验内容

1.了解XSS -跨网站脚本攻击带来的危险性。

2.掌握XSS -跨网站脚本攻击的原理与方法

3.掌握防范攻击的方法

实验环境描述

1、 学生机与实验室网络直连; 2、 VPC1与实验室网络直连; 3、学生机与VPC1物理链路连通;

实验步骤

1、 学生打开虚拟机,输入用户名和密码,用户为admin密码为 123456,进入系统

2.进入系统后首先打开xampp工具,然后手动开启apache、MySQL服务

3.打开浏览器,输入localhost:8080/example_code/ 如图:

4、找到“(4)跨网站脚本攻击(Cross Site script,XSS)”项,并点击打开,如图1。

5、开始攻击   攻击一: 打开“演示1”,以用户名daniel,密码123456登录,然后点击登录,如图2:

6、会出现提示信息,是否记住密码,可以选择是也可以选择否,这里我们选择否,并勾选上“不在保存密码”。如图:

7、使用者的账号已经使用隐藏字段user保存起来,你将会看到如下效果,如图3。

8、然后开始攻击,打开“攻击1”开始攻击,浏览器地址栏里就会显示显示出user的信息,如图4:

9、攻击二: 打开“攻击2”,点击“点击这里”链接,浏览器就会弹出一个框,显示用户的用户名以及密码,如下图:

注:如果单击超链接后没有显示对话框,请您检查下列两个事项:

        (1)  检查Internet Explorer的活动脚本功能是否打开。如果活动脚本功能没有打开,就无法执行网页中的Javascript代码。

        (2)  检查PHP的php.ini文件中的magic_quotes_gpc的设置值是否设置为Off。

10、相对“攻击2”的防护如下:

点击“防护2”然后点击“点击这里”,就会执行下列的HTTP链接:

http://localhost:8080/example_code/source/code4/ex4-2.php?user=<script>alert(document.cookie);</script>

此跨网站脚本会变成普通的字符串,而不是能够在客户端执行的JavaScript代码。效果如图所示

htmlspecialchars函数将

<script>alert(document.cookie);</script>

转换成:

<script>alert(document.cookie);</script>

“<”字符被转换成HTML字符码<;

“>”字符被转换成HTML字符码>。

由于htmlspecialchars函数的作用,在c:\xampp\htdocs\example_code\source\code4\ex4-2-attack-1.html文件中的隐藏跨网站脚本的HTTP链接:

<script>alert(document.cookie);</script>

会被当成普通的字符串来显示,而不再是可以执行的JavaScript代码。

11、攻击三:

点击“攻击3”地址就转到 localhost:8080/example_code/source/code4/ex4-3-attack.html如图:

12、然后点击“点击这里”地址跳转到一下地址:


 http://localhost:8080/example_code/source/code4/ex4-3.php/%22><script>alert(document.cookie);</script>

执行结果如下图所示。

在这里又出现了对话框,显示了使用者刚才输入的账号与密码。

13、防护方法:

(1)拆解

标签的内容

现在我们来看看ex4-3.php的标签的内容:


      <form action=" example_code/source/code4/ex4-3.php/"><script>alert(document.cookie);</script>" method="post">

这可以分解成3部分。

        (1) :这是标签现在的内容,只剩下action属性,method属性已经不见了。


        (2)  <script>alert(document.cookie);</script>

这是可执行的JavaScript代码。

        (3)"method="post">:这是剩下的没有意义的字符串。

(2)避免$_SERVER["PHP_SELF"]被篡改可以加上htmlspecialchars函数

    源码请查看:C:/xampp/htdocs/example_code/source/code4/ex4-4.php

    基本上如果是将表单数据传送给同一个文件处理时:" method="post">action属性是不需要的,将action属性设置为空字符串:就可以直接避免$_SERVER["PHP_SELF"]服务器变量被跨网站脚本篡改的问题。

14、实验完毕,关闭虚拟机和所有窗口。

HTTP攻击与防范-跨网站脚本攻击的更多相关文章

  1. HTTP攻击与防范-PHP客户端脚本攻击

    实验目的 了解客户端脚本植入攻击的方式 掌握防范攻击的方法 实验原理 了解客户端脚本植入攻击的方式 掌握防范攻击的方法 实验内容 了解客户端脚本植入攻击的方式 掌握防范攻击的方法 实验环境描述 1. ...

  2. ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)

    不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...

  3. IBM Rational AppScan:跨站点脚本攻击深入解析

    IBM Rational AppScan:跨站点脚本攻击深入解析    了解黑客如何启动跨站点脚本攻击(cross-site scripting,XSS),该攻击危害(及不危害)什么,如何检测它们,以 ...

  4. XFS: Cross Frame Script (跨框架脚本) 攻击。

    一.Cross Frame Script (跨框架脚本) 攻击什么是Cross Frame Script?很简单,做个实验就知道了.把下面的这段HTML代码另存为一个html文件,然后用ie浏览器打开 ...

  5. Cross Frame Script (跨框架脚本) 攻击

    一.Cross Frame Script (跨框架脚本) 攻击 什么是Cross Frame Script? 很简单,做个实验就知道了.把下面的这段HTML代码另存为一个html文件,然后用ie浏览器 ...

  6. 跨站点脚本攻击XSS

    来源:http://www.freebuf.com/articles/web/15188.html 跨站点脚本攻击是一种Web应用程序的攻击,攻击者尝试注入恶意脚本代码到受信任的网站上执行恶意操作.在 ...

  7. CSRF跨站请求伪造与XSS跨域脚本攻击讨论

    今天和朋友讨论网站安全问题,聊到了csrf和xss,刚开始对两者不是神明白,经过查阅与讨论,整理了如下资料,与大家分享. CSRF(Cross-site request forgery):跨站请求伪造 ...

  8. XSS(跨域脚本攻击)应对之道

    1.概念 xss一般分为两类,反射型和存储型. 反射型xss指的是客户端的不安全输入而引起的攻击,例如: 在某网站搜索,搜索结果会显示搜索的关键词,搜索时关键词填入<script>aler ...

  9. HTTP攻击与防范-跨站攻击-01简介

    实验目的 1.掌握WEB渗透测试跨站攻击原理 2.了解WEB站点的跨站攻击脆弱性 3.修复存在跨站攻击可能的漏洞 实验原理 XSS又叫CSS (Cross Site script) ,跨站脚本攻击.它 ...

随机推荐

  1. docker安装、下载镜像、容器的基本操作

    文章目录 一.docker安装与基本使用 1.docker的安装.从远程仓库下载镜像 2.配置docker国内源 二.创建容器 1.create i.创建容器 ii.进入容器 iii.启动容器 2.r ...

  2. Vue.use()用法

    通常我们引入一个第三方组件形式的插件进来时,我们在main.js里面需要Vue.use('该插件名字'),比如引入一个vant组件 那么我们如何自己也来尝试将自己封装的组件以Vue.use()的形式来 ...

  3. grafana ldap 权限无法保持

    一.Grafana介绍 Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知.它主要有以下六大特点: 1.展示方式:快速灵活的客户端图表,面板插 ...

  4. STS中创建 javaweb 项目?

    package com.aaa.readme; /* * 一. * 1.安装Tomcat 版本8.5 * * 2.file---->new------>dynamic java web p ...

  5. Windows下cmd/powershell命令混淆绕过

    前言 在Windows下绕过杀毒软件的主动防御机制的常见思路. Bypass 1.特殊符号.大小写 常用符号: " ^ , ; 可以绕过一些常规的waf 2.环境变量 拿到一台机器时,可以先 ...

  6. 洛谷P2240 【深基12.例1】部分背包问题(经典模板)

    首先应该注意几个关键信息:装走尽多的金币.所有金币可以随意分割并且分割后金币的价值比不变; 我们可以抽象成一个买东西的场景,给你一定数目的钱,让你在这些钱内尽量在超市买更多的小零食,这就牵扯到了一个性 ...

  7. 对axios的理解

    axios是基于promise的,可以使用promise api axios的请求方式 axios(config) axios.request(config) axios.get(url [,conf ...

  8. netty系列之:选byte还是选message?这是一个问题

    目录 简介 类型的定义 搭建UDT stream服务器 搭建UDT message服务器 Stream和Message的handler 总结 简介 UDT给了你两种选择,byte stream或者me ...

  9. 学习jsp篇:jsp简单实例之一注册

    编程环境:IDEA,Tomcat ,JavaEE 实例一.注册 1.先在IDEA建一个web工程(不懂的可以在网上搜,一大堆..)ServletTest,在工程目录下的web目录建一个文件夹regis ...

  10. linux增加用户组,并在用户组下添加指定用户

    groupadd mysql #1 useradd -g mysql[用户组] mysql[用户名] #2 useradd mysql[用户名] -g mysql[用户组]