本文目录一览:
哪有放XSS跨站脚本工具的第三方工具/
不修改网站程序,使用第三方工具来防范XSS跨站式脚本攻击
网站要怎么防范常见的XSS跨站式脚本攻击呢,我们先从XSS跨站式脚本攻击的原理来说起。
网站遭受XSS跨站式脚本攻击的基本原理
1.本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。
其攻击过程如下所示:
A给B发送一个恶意构造了Web的URL。
B点击并查看了这个URL。
恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在B电脑上。
具有漏洞的HTML页面包含了在B电脑本地域执行的JavaScript。
A的恶意脚本可以在B的电脑上执行B所持有的权限下的命令。
2反射式漏洞,这种漏洞和本地利用漏洞有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。
其攻击过程如下:
A经常浏览某个网站,此网站为B所拥有。B的站点运行A使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。
C发现B的站点包含反射性的XSS漏洞。
C编写一个利用漏洞的URL,并将其冒充为来自B的邮件发送给A。
A在登录到B的站点后,浏览C提供的URL。
嵌入到URL中的恶意脚本在A的浏览器中执行,就像它直接来自B的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在A完全不知情的情况下将这些信息发送到C的Web站点。
3存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
其攻击过程如下:
B拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。
C注意到B的站点具有存储式的XXS漏洞。
C发布一个热点信息,吸引其它用户纷纷阅读。
B或者是任何的其他人如A浏览该信息,其会话cookies或者其它信息将被C盗走。
类型A直接威胁用户个体,而类型B和存储式漏洞所威胁的对象都是企业级Web应用。
网站遭受XSS跨站式脚本攻击的基本方式
1. DOM-based cross-site scripting
页面本身包含一些DOM对象的操作,如果未对输入的参数进行处理,可能会导致执行恶意脚本。如下面一些DOM操作:
document.URL
document.URLUnencoded
document.location (and many of its properties)
document.referrer
window.location (and many of its properties)
举个例子,假如某个脆弱的页面的代码如下:
HTML
TITLEWelcome!/TITLE
Hi
SCRIPT
var pos=document.URL.indexOf("name=")+5;
document.write(document.URL.substring(pos,document.URL.length));
/SCRIPT
BR
Welcome to our system
…
/HTML
攻击者使用如下的URL访问时,则非常危险:
;scriptalert(document.cookie)/script
试了一下,貌似IE、FireFox等浏览器默认 对scriptalert(document.cookie)/script进行了编码,阻止了脚本的执行。但是对于 DOM操作还是要更加谨慎啊,比如把上面的页面修改一下,安全性就增强了不少:
SCRIPT
var pos=document.URL.indexOf("name=")+5;
var name=document.URL.substring(pos,document.URL.length);
if (name.match(/^[a-zA-Z0-9]$/))
{
document.write(name);
}
else
{
window.alert("Security error");
}
/SCRIPT
2. Reflected cross-site scripting
也被称为None-Persistent cross-site scripting,即,非持久化的XSS攻击,是我们通常所说的,也是最常用,使用最广的一种方式。它通过给别人发送带有恶意脚本代码参数的URL,当 URL地址被打开时,特有的恶意代码参数被HTML解析、执行。它的特点是非持久化,必须用户点击带有特定参数的链接菜能引起。
3. Persistent cross-site scripting
持久化XSS攻击,指的是恶意脚本代码被存储进被攻击的数据库,当其他用户正常浏览网页时,站点从数据库中读取了非法用户存入非法数据,恶意脚本代码被执行。这种攻击类型通常在留言板等地方出现。
实施方式
我们来试一把Reflected cross-site scripting。当我们在某网站输入参数XXX,发现参数XXX原样的出现在了页面源码中:
1. input type="text" class="Seach" name="w" value="XXX" /
OK,可以开始做文章了,我们将XXX替换为:abc"/scriptalert('haha')/scripta href=",返回的HTML代码如下:
1. input type="text" class="Seach" name="w" value="abc"/
2. scriptalert('haha')/script!--" /
这样,scriptalert('haha')/script被执行了。这里再举例一些XSS攻击行为:
1. IMG SRC="javascript:alert('XSS');"
2. IMG SRC=javascript:alert('XSS')
3. IMG SRC="javascript:alert(String.fromCharCode(88,83,83))"
4. IMG SRC="jav ascript:alert('XSS');"
5. SCRIPT/XSS SRC=""/SCRIPT
6. SCRIPTalert("XSS");///SCRIPT
7. iframe src=
8. INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');"
9. BODY BACKGROUND="javascript:alert('XSS')"
10. BODY ONLOAD=alert(document.cookie)
11. BODY onload!#$%()*~+-_.,:;?@[/|"]^`=alert("XSS")
12. IMG DYNSRC="javascript:alert('XSS')"
13. IMG DYNSRC="javascript:alert('XSS')"
14. BR SIZE="{alert('XSS')}"
15. IMG SRC='vbscript:msgbox("XSS")'
16. TABLE BACKGROUND="javascript:alert('XSS')"
17. DIV STYLE="width: expression(alert('XSS'));"
18. DIV STYLE="background-image: url(javascript:alert('XSS'))"
19. STYLE TYPE="text/javascript"alert('XSS');/STYLE
20. STYLE type="text/css"BODY{background:url("javascript:alert('XSS')")}/STYLE
21. ?='SCRIPTalert("XSS")/SCRIPT'?
22. A HREF="javascript:document.location=''"XSS/A
23. IMG SRC=javascript:alert('XSS')
24. EMBED SRC="" AllowScriptAccess="always"/EMBED
25. a="get";
26. b="URL(""";
27. c="javascript:";
28. d="alert('XSS');"")";
29. eval(a+b+c+d);
总结一下,要防止XSS跨站式脚本攻击主要是要在查询字符串(QueryString),表单数据(PostData)以及Cookie甚至HTTP报头(Header)中防止掉一些javascript关键字和一些敏感的字符(单引号,分号)以及SQL语言的关键字,以及防止他们使用encode编码。
用ASP或者PHP脚本来实现上面的这些想起来就很麻烦。下面就来介绍下用一个第三方工具IISUTM来处理上面我们说到的问题。
准备工作:先去下载最新的IISUTM版本。
根据IISUTM网站防火墙安装及操作手册 中的说明把IISUTM部署到你的服务器上来,这里需要注意的是使用Windows 2003+iis6的服务器,需要开启iis中“以IIS5.0 隔离模式运行 www 服务”选项才能正常使用该软件。
安装完成,通过浏览器访问IISUTM的配置管理界面默认的是,这个是私有地址,只能在该服务器上访问,你需要任何地方都能访问的话,可以在安装的时候IP地址的选项那里填入你服务器的公网IP地址,和你所开放的端口。这样你就可以通过你配置的地址进行访问,或者你可以在iis中直接管理名为IISUTM的站点。
登陆管理界面后点击上面导航栏中的“基本设置”,然后点击左边菜单的“防XSS攻击”链接。
开启该链接里所有的选项,选中之后IISUTM会自动保存配置,下面的“使用不允许的发送序列”是该软件提供的XSS攻击关键字的特征库,你可以根据你网站的情况进行更改(最好不要修改)。
确认以上的配置以后,你可以返回到IISUTM管理界面的首页,这里会列出最近服务器遭受到的攻击以及详细,赶紧去看看你的网站是不是随时有人在进行SQL注入吧,以及哪些攻击被IISUTM处理掉了。
asp项目中如何防止xss攻击
asp中防止xss攻击的方法如下:
确保所有输出内容都经过 HTML 编码。
禁止用户提供的文本进入任何 HTML 元素属性字符串。
根据 msdn.microsoft.com/library/3yekbd5b 中的概述,检查 Request.Browser,以阻止应用程序使用 Internet Explorer 6。
了解控件的行为以及其输出是否经过 HTML 编码。如果未经过 HTML 编码,则对进入控件的数据进行编码。
使用 Microsoft 防跨站点脚本库 (AntiXSS) 并将其设置为您的默认 HTML 编码器。
在将 HTML 数据保存到数据库之前,使用 AntiXSS Sanitizer 对象(该库是一个单独的下载文件,将在下文中介绍)调用 GetSafeHtml 或 GetSafeHtmlFragment;不要在保存数据之前对数据进行编码。
对于 Web 窗体,不要在网页中设置 EnableRequestValidation=false。遗憾的是,Web 上的大多数用户组文章都建议在出现错误时禁用该设置。该设置的存在是有原因的,例如,如果向服务器发送回“X”之类的字符组合,该设置将阻止请求。如果您的控件将 HTML 发送回服务器并收到图 5 所示的错误,那么理想情况下,您应该在将数据发布到服务器之前对数据进行编码。这是 WYSIWYG 控件的常见情形,现今的大多数版本都会在将其 HTML 数据发布回服务器之前对该数据进行正确编码。
对于 ASP.NET MVC 3 应用程序,当您需要将 HTML 发布回模型时,不要使用 ValidateInput(false) 来关闭请求验证。只需向模型属性中添加 [AllowHtml] 即可,如下所示:
public class BlogEntry
{
public int UserId {get;set;}
[AllowHtml]
public string BlogText {get;set;}
}
xss漏洞类型有哪些?
大家好,大家经常听到XSS攻击这个词,那么XSS攻击到底是什么,以及如何防御XSS攻击大家清楚么?今天,天下数据就给大家讲一下:XSS攻击的定义、类型以及防御方法。
什么是XSS攻击?
XSS攻击全称跨站脚本攻击,是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
XSS攻击有哪几种类型?
常见的 XSS 攻击有三种:反射型XSS攻击、DOM-based 型XXS攻击以及存储型XSS攻击。
1.反射型XSS攻击
反射型 XSS 一般是攻击者通过特定手法(如电子邮件),诱使用户去访问一个包含恶意代码的 URL,当受害者点击这些专门设计的链接的时候,恶意代码会直接在受害者主机上的浏览器执行。反射型XSS通常出现在网站的搜索栏、用户登录口等地方,常用来窃取客户端 Cookies 或进行钓鱼欺骗。
2.存储型XSS攻击
也叫持久型XSS,主要将XSS代码提交存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。当目标用户访问该页面获取数据时,XSS代码会从服务器解析之后加载出来,返回到浏览器做正常的HTML和JS解析执行,XSS攻击就发生了。存储型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。
3.DOM-based 型XSS攻击
基于 DOM 的 XSS 攻击是指通过恶意脚本修改页面的 DOM 结构,是纯粹发生在客户端的攻击。DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞。
如何防御XSS攻击?
1. 对输入内容的特定字符进行编码,例如表示 html标记的 等符号。
2. 对重要的 cookie设置 httpOnly, 防止客户端通过document.cookie读取 cookie,此 HTTP头由服务端设置。
3. 将不可信的值输出 URL参数之前,进行 URLEncode操作,而对于从 URL参数中获取值一定要进行格式检测(比如你需要的时URL,就判读是否满足URL格式)。
4. 不要使用 Eval来解析并运行不确定的数据或代码,对于 JSON解析请使用 JSON.parse() 方法。
5. 后端接口也应该要做到关键字符过滤的问题。
以上,是天下数据给大家分享的关于XSS攻击的全部内容,大家记得收藏方便以后查看哦。
如今,各种类型网络攻击日益频繁,除了XSS攻击之外,比较常见的网络攻击类型还包括DDoS攻击、CC攻击等,它们非常难以防御,除了需要做好日常网络安全防护之外,还需要接入高防服务,可以接入天下数据高防cdn,通过天下数据高防cdn隐藏源IP,对攻击流量进行清洗,保障企业网络及业务的正常运行。
XSS攻击原理是什么
Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码,当用户浏览该页或者进行某些操作时,攻击者利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的操作或者向其它网站提交用户的私密信息。
比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。
诸如此类,唯一能完全杜绝xss攻击的方法,就是禁用script,img等,显然这是不靠谱的,用户需要丰富的页面内容;当然我们可以用一些方法预防xss攻击,尽量减少xss造成的危害。
XSS攻击的危害包括
盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
盗窃企业重要的具有商业价值的资料
非法转账
强制发送电子邮件
网站挂马
控制受害者机器向其它网站发起攻击
XSS攻击的定义,类型以及防御方法?
XXS攻击全称跨站脚本攻击,是一种在Web应用中的计算机安全漏洞,它允许恶意Web用户将代码植入到提供给其他使用的页面中。
XSS攻击有哪几种类型?下面就由锐速云的小编为大家介绍一下
经常见到XSS攻击有三种:反射XSS攻击、DOM-based型XSS攻击以及储存型XSS攻击。
[if !supportLists]1、[endif]反射型XSS攻击
反射性XSS一般是攻击者通过特定手法(如电子邮件),诱使用户去访问一个包含恶意代码的URL,当受害者点击这些专门设计链接的时候,恶意代码会直接在受害主机上的浏览器上执行,反射型XSS通常出现在网站搜索栏,用户登入口等地方,常用来窃取客户端或进行钓鱼欺骗。
[if !supportLists]2、[endif]存储型XSS攻击
存储型XSS攻击也叫持久型XSS,主要将XSS代码提交储存在服务器端(数据库,内存,文件系统等)下次请求目标页面时不用在提交XSS代码。当目标用户访问该页面获取数据时,XSS代码会从服务器解析之后加载出来,返回到浏览器做正常的HTML和JS解析执行,XSS攻击就发生了。储存型XSS一般出现在网站留言,评论,博客日志等交互处,恶意脚本储存到客户端或者服务端的数据库中。
[if !supportLists]3、[endif]DOM-based型XSS攻击
DOM-based型XSS攻击它是基于DOM的XSS攻击是指通过恶意脚本修改页面的DOM结构,是纯粹发生在客户端的攻击。DOM型XSS攻击中,取出和执行恶意代码由浏览器端完成,属于前端JavaScript自身的安全漏洞。
如何防御XSS攻击?
[if !supportLists]1、[endif]对输入内容的特定字符进行编码,列如表示html标记等符号。
[if !supportLists]2、[endif]对重要的cookie设置httpOnly,防止客户端通过document。cookie读取cookie,此HTTP开头由服务端设置。
[if !supportLists]3、[endif]将不可信的输出URT参数之前,进行URLEncode操作,而对于从URL参数中获取值一定要进行格式检查
[if !supportLists]4、[endif]不要使用Eval来解析并运行不确定的数据或代码,对于JSON解析请使用JSON。Parse()方法
[if !supportLists]5、[endif]后端接口也应该要做到关键字符过滤的问题。