XSS跨站脚本攻击原理与实践

本文详细介绍了XSS(跨站脚本攻击)的基本概念、分类及其实战步骤,包括反射型XSS、存储型XSS和DOM型XSS。通过实例演示了如何利用XSS获取用户cookie,揭示了XSS攻击的危害和防范措施。
摘要由CSDN通过智能技术生成

预备知识

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制,获取用户的一些信息。
XSS的分类:
反射型XSS
存储型XSS
基于DOM的XSS
HTML基础知识:http://www.w3school.com.cn/html/
JavaScript基础知识:http://www.w3school.com.cn/js/

实验目的

1.能够理解XSS产生的原理。
2.了解XSS的分类。
3.掌握XSS盗取COOKIE的方法。

实验环境

一台windows7、安装wampserver、火狐浏览器、Chrome浏览器。

实验步骤一

XSS攻击,指通过在页面注入恶意JAVASCRIPT代码,从而在用户浏览被注入恶意代码的页面时,控制用户的浏览器行为的一种攻击。
XSS一般分为3类:
1.反射型XSS,相对来说,危害较低,需要用户点击特定的链接才能触发。
2.存储型XSS,该类XSS会把攻击代码保存到数据库,所以也叫持久型XSS,因为它存在的时间是比较长的。
3.DOM型XSS,这类XSS主要通过修改页面的DOM节点形成XSS,称为DOM Based XSS。
我们先来看下反射型XSS,本步骤的页面代码如下:
在这里插入图片描述
源码保存在C:\wamp\www\xss目录下。
功能很简单:检测用户是否通过GET方法传参,如果传了msg参数,则直接输出,否则什么都不干,需要注意的是,这个表单使用的传参方法为GET方法。
正常情况下,用户只会输入一些普通字符,也就是数字、字母或者中文,所以,不会有什么安全问题。
首先打开本次实验的页面,xss.com/xss-ref.php,随便输入一些普通字符测试,我输入的内容为“test测试”。
在这里插入图片描述
然后点击submit,提交数据,会直接输出我们输入的内容,注意这里使用的是GET方法传参。
在这里插入图片描述
但是恶意的用户就会尝试输入一些特殊字符,比如“<>'"”等,甚至直接尝试使用<script>标签来往页面插入一段JavaScript,来测试后台是否有过滤。如果服务端接收了用户的输入后,对一些特殊字符没有进行html实体编码,那么用户输入的字符就会被浏览器当成html代码解析。
我们输入<script>alert(‘xss’)</script>测试,测试XSS最常用的就是<script>alert(‘xss’)</script>,如果页面存在XSS,那么就会弹出“XSS”这个字符。
在这里插入图片描述
然后点击submit,弹出了XSS,说明我们输入的数据被浏览器当成指令执行了!
在这里插入图片描述
点击确定,发现您输入的内容后面没有任何显示,这是为什么?在页面鼠标右击,选择查看页面源码,可以看到我们输入的内容确实输出了。
在这里插入图片描述
为什么没有显示在页面上来呢?
因为我们输入的数据被当成了代码来执行,如何确定我们输入的数据是否被浏览器当成代码解析了呢?一个简单的办法就是查看我们输入的标签的字体的颜色,如果是深紫

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值