HTTP攻击与防范-跨网站脚本攻击
实验目的
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攻击与防范-跨网站脚本攻击的更多相关文章
- HTTP攻击与防范-PHP客户端脚本攻击
实验目的 了解客户端脚本植入攻击的方式 掌握防范攻击的方法 实验原理 了解客户端脚本植入攻击的方式 掌握防范攻击的方法 实验内容 了解客户端脚本植入攻击的方式 掌握防范攻击的方法 实验环境描述 1. ...
- ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...
- IBM Rational AppScan:跨站点脚本攻击深入解析
IBM Rational AppScan:跨站点脚本攻击深入解析 了解黑客如何启动跨站点脚本攻击(cross-site scripting,XSS),该攻击危害(及不危害)什么,如何检测它们,以 ...
- XFS: Cross Frame Script (跨框架脚本) 攻击。
一.Cross Frame Script (跨框架脚本) 攻击什么是Cross Frame Script?很简单,做个实验就知道了.把下面的这段HTML代码另存为一个html文件,然后用ie浏览器打开 ...
- Cross Frame Script (跨框架脚本) 攻击
一.Cross Frame Script (跨框架脚本) 攻击 什么是Cross Frame Script? 很简单,做个实验就知道了.把下面的这段HTML代码另存为一个html文件,然后用ie浏览器 ...
- 跨站点脚本攻击XSS
来源:http://www.freebuf.com/articles/web/15188.html 跨站点脚本攻击是一种Web应用程序的攻击,攻击者尝试注入恶意脚本代码到受信任的网站上执行恶意操作.在 ...
- CSRF跨站请求伪造与XSS跨域脚本攻击讨论
今天和朋友讨论网站安全问题,聊到了csrf和xss,刚开始对两者不是神明白,经过查阅与讨论,整理了如下资料,与大家分享. CSRF(Cross-site request forgery):跨站请求伪造 ...
- XSS(跨域脚本攻击)应对之道
1.概念 xss一般分为两类,反射型和存储型. 反射型xss指的是客户端的不安全输入而引起的攻击,例如: 在某网站搜索,搜索结果会显示搜索的关键词,搜索时关键词填入<script>aler ...
- HTTP攻击与防范-跨站攻击-01简介
实验目的 1.掌握WEB渗透测试跨站攻击原理 2.了解WEB站点的跨站攻击脆弱性 3.修复存在跨站攻击可能的漏洞 实验原理 XSS又叫CSS (Cross Site script) ,跨站脚本攻击.它 ...
随机推荐
- 【vps】如何在vps上安装mirai机器人?
[vps]如何在vps上安装mirai机器人? 前言 由于某位师傅在群里设置了一个bot,吸引了我,所以我之前找他问了点bot的相关知识,这几天正好服务器搬迁,所以就在新服务器上再装一遍bot 1.安 ...
- [Altium Designer 学习]怎样输出Gerber文件和钻孔文件
为了资料保密和传输方便,交给PCB厂商打样的资料一般以Gerber和钻孔文件为主,换句话说,只要有前面说的两种文件,就能制作出你想要的PCB了. 一般来说,交给PCB厂商的Gerber有以下几层: G ...
- Python SQL execute加参数的原理
在Python中,当用pymysql库,或者MySQLdb库进行数据库查询时,为了防止sql注入,可以在execute的时候,把参数单独带进去,例如: def execute_v1(): config ...
- Go 面向对象编程应用
#### Go 面向对象编程应用前面学习了很多的基础知识,这一节来实际写一个小案例:涉及到的知识: 1. 数组的基本使用2. 结构体3. 切片 4. 方法5. 循环6. 函数返回值(命名返回值,普通返 ...
- K8S配置多集群访问
中文官档: http://docs.kubernetes.org.cn/823.html 背景:我们通过会有多个k8s集群,例如集群(cn-k8s)和集群(jp-k8s),那个就需要有一台服务器可以同 ...
- Redis命令大全(超详细)
一:序 其实本文的命令大家都可以去官网学习,但是我出这篇文章只是以更直观的方式来解读官网上的命令,让大家一眼可以看得懂,看的明白: 注意:我全文使用的Redis版本为 6.2.x 版本,低版本可能有些 ...
- ☕【Java深层系列】「并发编程系列」深入分析和研究MappedByteBuffer的实现原理和开发指南
前言介绍 在Java编程语言中,操作文件IO的时候,通常采用BufferedReader,BufferedInputStream等带缓冲的IO类处理大文件,不过java nio中引入了一种基于Mapp ...
- Power Apps 创建响应式布局
前言 我们都知道Power Apps作为低代码平台,最大的优势就是各个设备之间的兼容性,尤其是自带的响应式布局,非常好用. 这不,我们就为大家分享一下,如何使用Power Apps画布应用,创建响应式 ...
- JVM诊断及工具笔记(2)使用arthas定位哪里执行了System#gc()
笔者是汽车之家实时计算平台的一名小伙伴.负责flink平台,数据湖及kafka平台的设计与开发.平时擅长做平台设计,定位及解决各种疑难杂症.第二篇文章,讲的点依旧很小,但是这次图多!!! 在这里感谢支 ...
- 计算机网络再次整理————UDP例子[六]
前言 简单的说,UDP 没有 TCP 用的广泛,但是还有很多是基于UDP的程序的,故而简单介绍一下. 正文 秉承节约脑容量的问题,只做简单的介绍和例子,因为自己几乎也没怎么用过UDP. 只是了解和知晓 ...