关闭

跨站脚本攻击

标签: 脚本跨站脚本攻击
348人阅读 评论(0) 收藏 举报

先来说说这个跨站脚本攻击是个什么东西,跨站脚本攻击(Cross site scripting),本来应该简写为CSS但是正好与CSS层叠样式表重名,所以说一般简写为XSS。XSS是一种客户端脚本攻击方式,还是利用网页程序对页面输入的数据过滤不严或未过滤的漏洞,来向web页面植入恶意脚本代码,用户在浏览这个页面的时候就会执行插入的恶意脚本代码。

   下面来说说三种类型的跨站脚本攻击

1. 反射型XSS,反射型XSS也被称为非持久性的XSS,反射型CSS一般是向用户发送一个恶意的带有攻击脚本的URL连接来诱骗用户去点击,当用户点击的时候就会执行里面的恶意脚本,好下面我用PHP先来实现一个简单的网页,PHP的代码如下图所示:

这是一个非常简单的网页,好了现在我们通过localhost来访问这个网页,因为我们没有想起传入参数,所以直接访问如下图:

但是如果我们用如下的方式来访问这个网页:
localhost/test/test.php?user=<script>alert(/这是一个xss反射型跨站脚本攻击/);</script>
其中里面的%3C和%3E是<>字符,这里就相当于用用户名来传输一段非法的代码,这段代码在360的浏览器上会被识别,在360浏览器上也不会被执行,在360浏览器网站源代码查看里面,被注入的这段代码,被标记为红色,但是在win10的Edge浏览器里面这段代码是被执行的,效果如下:

假设这是一个访问量较大的网站,攻击者就可以伪装这样的一段URL来诱骗用户点击,从而执行恶意脚本

2. 存储型XSS,存储型XSS为持久型跨站脚本攻击,存储型的意思就是攻击者将恶意数据非法存储在web服务器的页面中,当用户访问的时候,嵌入页面的恶意代码就会被执行,因为恶意脚本保存在服务器端,所以具有很强的稳定性,一般来说的方法就是攻击者将恶意数据嵌入到blog或论坛里面,然后发布到相应的web服务器,当其他用户查看对应的blog或帖子的话,里面的代码就会被恶意执行,与反射型XSS相比,存储型XSS攻击的危害性更大,原因在于存储型XSS实施攻击的过程不需要用户交互,反射型还得让用户点击那个链接,而且当前的浏览器比如上面说的360浏览器都对反射型XSS做了过滤支持,攻击者必需想办法来绕过浏览器的过滤规则,存储型XSS不会受到浏览器过滤规则的影响

3. DOM-based XSS,这个是基于文档对象模型DOM的跨站脚本攻击,攻击者通过jsp来动态修改DOM的结构,进而导致XSS漏洞,从效果上来说属于反射型XSS,因为他并没有改变web服务器返回的内容

4. 跨站脚本发攻击实质上是利用了用户浏览区可执行脚本的权限,XSS攻击完成之后,攻击者可以在客户端进行所有脚本可以实现的功能,比如进行用户登录cookie的劫持,还可以模拟GET和POST请求对浏览器执行非法的操作

5. XSS的防范,第一就是输入检查,检查用户的输入,还有就是将cookie进行httponly标识,带有httponly标识的cookie就不能被jsp来进行访问了,还有就是进行输出检查,从JavaScript到HTML要进行输出检查,可以使用JavascriptEncode编码函数来进行适当的编码

首发于我的个人网站: 点击打开链接

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:53948次
    • 积分:1409
    • 等级:
    • 排名:千里之外
    • 原创:102篇
    • 转载:0篇
    • 译文:0篇
    • 评论:14条
    文章存档
    最新评论