- 浏览: 407406 次
- 性别:
- 来自: 长春
-
文章分类
最新评论
-
milkyTea_:
...
学习:二维码、QR码、J4L-QRCode、java -
xunke515:
请问如何更换其他用户,注销了从新登录的时候选择么?
Hadoop启动时出现Unrecognized option: -jvm 和 Could not create the Java virtual machine -
_copythat:
学习:二维码、QR码、J4L-QRCode、java -
小fi(FD):
楼主,你好,关于你发表的《基于动态表单的Java不确定字段数报 ...
基于动态表单的Java不确定字段数报表项目实现 -
rmn190:
受用了。多谢分享!
SD2见闻--参加PPT制作秘笈沙龙
检测到目标URL存在跨站漏洞 | 客户端攻击类型:跨站脚本攻击 | 高 | 14 | 查看 |
漏洞URL:
详细描述:
跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息或在终端用户系统上执行恶意代码。
成功的跨站脚本攻击所带来的主要问题包括:
帐号劫持 - 攻击者可以在会话cookie过期之前劫持用户的会话,并以访问ULR用户的权限执行操作,如发布数据库查询并查看结果。
恶意脚本执行 - 用户可能在不知情的情况下执行攻击者注入到动态生成页面中的JavaScript、VBScript、ActiveX、HTML甚至Flash内容。
蠕虫传播 - 通过Ajax应用,跨站脚本可以以类似于病毒的方式传播。跨站脚本负载可以自动将其自身注入到页面中,并通过更多的跨站脚本轻易的重新注入同一主机,而
所有这些都无需手动刷新页面。因此,跨站脚本可以使用复杂的HTTP方式发送多个请求,并以用户不可视的方式自我传播。
信息窃取 - 攻击者可以通过重新定向和伪造站点将用户连接到攻击者所选择的恶意服务器并获得用户所输入的任何信息。
拒绝服务 - 通常攻击者通过在包含有跨站脚本漏洞的站点上使用畸形的显示请求,就可以导致主机站点反复的自我查询,出现拒绝服务的情况。
浏览器重新定向 - 在某些使用帧的站点上,用户可能在实际上已经被重新定向到恶意站点的情况下误导为仍处在原始站点上,因为浏览权地址栏中的URL仍保持不变。这是由于没有重新定向整个页面,而只是执行JavaScript的帧。
控制用户设置 - 攻击者可以恶意更改用户设置。
本漏洞属于Web应用安全常见漏洞.
解决方案:
推荐措施包括实施安全编程技术确保正确过滤用户
提供的数据,并编码所有用户提供的数据以防以可执行的格式向终端用户发送注入的脚本。
对于开发
========
可通过仔细验证所有输入和正确编码所有输出来防范跨站脚本攻击。可使用标准的ASP.NET验证控件或直接在代码中实施验证,要尽可能使用严格的模版。
输出编码要确保在将内容发送给客户端之前对任何可脚本化的内容都进行了正确的HTML编码。可通过HttpUtility.HtmlEncode函数实现,如以下Label控件示例所示:
Label2.Text = HttpUtility.HtmlEncode(input)
要考虑用户输入通过应用可能用到的所有路径。例如,如果数据是由用户输入的,存储在数据库中,然后再重新显示,就必须要确保在每次检索的时候都能正确编码。如
果必须允许自由格式文本输入(如在消息板中),而又希望允许使用一些HTML格式,则可以通过仅明确允许很小的安全标签列表来安全的处理这种情况,如下所示:
C#示例:
StringBuilder sb = new StringBuilder(
HttpUtility.HtmlEncode(input));
sb.Replace("<b>", "<b>");
sb.Replace("</b>", "<b>");
sb.Replace("<i>", "<i>");
sb.Replace("</i>", "</i>");
Response.Write(sb.ToString());
VB.NET示例:
Dim sb As StringBuilder = New StringBuilder( _
HttpUtility.HtmlEncode(input))
sb.Replace("<b>", "<b>")
sb.Replace("</b>", "<b>")
sb.Replace("<i>", "<i>")
sb.Replace("</i>", "</i>")
Response.Write(sb.ToString())
Java示例:
public static String HTMLEncode(String aTagFragment){ final StringBuffer result = new StringBuffer(); final StringCharacterIterator iterator = new StringCharacterIterator(aTagFragment);
char character = iterator.current();
while (character != StringCharacterIterator.DONE ){ if (character = = '<') { result.append("<"); } else if (character = = '>') { result.append(">"); } else if (character = = '\\"') { result.append("""); } else if (character = = '\\") { result.append("'"); } else if (character = = '\\\') { result.append("\\"); } else if (character = = '&') { result.append("&"); } else { //the char is not a special one //add it to the result as is result.append(character); } character = iterator.next(); } return result.toString(); }
以下建议可帮助构建能够抵御跨站脚本攻击的web应用。
定义允许的内容。确保web应用对所有输入参数(cookies、头、查询字符串、表单、隐藏字段等)验证严格定义的预期结果。
检查POST和GET请求的响应,确保返回内容是预期的且有效。
通过编码用户提供的数据从用户输入中删除冲突字符、括号、单双引号。这可以防范以可执行的方式向终端用户发送注入的脚本。
在可能的时候将所有客户端提供的数据仅限于字母数字的数据。使用这种过滤方案时,如果用户输入了<script>alertdocumentcookie( 'aaa') </script>,就会被减少为scriptalertdocumentcookiescript。如果必须使用非字母数字字符,在HTTP响应中使用之前将其编码为HTML实体,这样就无法将其用于修改HTML文档的结构。
使用双重用户认证机制而不是单重认证。
在修改或使用脚本之前确认其来源。
在自己的代码中使用时不要明确的信任任何来自他人的脚本,无论是从web下载还是来自熟人。
大多数服务器端脚本语言都提供了内嵌方式将输入变量的值转换为正确的不可解释HTML。应使用这种方式在将输入显示给客户端之前过滤所有输入。
PHP: string htmlspecialchars (string string [, int quote_style])
ASP / ASP.NET: Server.HTMLEncode (strHTML String)
对于安全操作
============
服务器端编码指的是首先通过编码函数发送所有的动态内容,使用所选择字符集中的代码替换Scripting标签,这可以帮助防范跨站脚本攻击。服务器端编码的缺点是可能
耗费资源,对一些web服务器的性能产生负面影响。
如果必须允许站点用户使用HTML标签,如允许用户使用的格式化标签的公告栏,则应限制可使用的标签。创建可接受标签的列表,如粗体字、斜体字或下划线,并仅允许使用这些,拒绝任何其他标签。以下是一些可帮助检测跨站脚本的正则表达式。
简单跨站脚本攻击的正则表达式:
/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/ix
应如下将上述正则表达式添加到新的Snort规则:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"NIICross-Site Scripting attempt"; flow:to_server,established;pcre:"/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/i";classtype:Web-application-attack; sid:9000; rev:5;)
跨站脚本攻击的偏执行正则表达式:
/((\%3C)|<)[^\n]+((\%3E)|>)/I
这条特征仅仅查找起始的HTML标签及其对等的16进制,之后的一个或多个字符为非换行符,再之后为结尾标签或其对等的16进制。这可能导致一些误报,具体取决于Web应
用和Web服务器的架构。但这种方式可以确保捕获任何攻击,甚至远程类似的跨站脚本攻击。对于公众方面,可以加强教育程序,帮助用户防范可用于帐号劫持和其他形式
身份窃取的在线欺诈,如网络钓鱼。
对于质量保证
============
修复跨站脚本漏洞最终要求基于代码的修复。“对于开发”和“对于安全操作”部分所述步骤可为开发人员提供修复这些问题所需的信息。以下步骤概括了如何对应用程序手动测试跨站脚本。
步骤1. 在浏览器中打开任意Web站点,查找可接受用户输入的位置,如搜索表单或某些登录页面。在搜索框中输入test并发送给Web服务器。
步骤2. 寻找返回类似于Your search for 'test' did not find any items或Invalid login test页面的WEB服务器。如果结果页面中出现了test,请继续。
步骤3. 如果要测试跨站脚本,在之前使用的同一搜索或登录框中输入<script>alert('hello')</script>字符串并发送给Web服务器。
步骤4. 如果服务器所响应的弹出框显示hello,则站点受跨站脚本影响。
步骤5. 即使步骤4失败,站点没有返回这条信息,仍可能存在风险。在浏览器中点击“查看源码”选项,查看Web页面的实际HTML代码。现在查找发送给服务器的<script>字符串,如果在源码中看到整个<script>alert('hello')</script>文本,则Web服务器受跨站脚本的影响。
发表评论
-
网贷系统架构——前端框架的选择
2015-08-14 16:03 632一、网贷系统对前端 ... -
微信公众平台帐号类型
2014-12-14 22:41 627微信公众平台帐号类型 -
WebMail: roundcube的组建
2011-06-18 23:48 2159一、点评: 本人 ... -
Google搜索特色
2011-05-03 23:06 927改善您的搜索体验 您可以通过 Google 轻松 ... -
什么是Openlaszlo
2011-04-19 06:46 837laszlo,读作la`zalo, wikipedia ... -
反爬虫势在必行啊,网站的服务器又宕机了。谁有好的办法啊?
2011-04-17 12:50 1062TCP thxserver:http ... -
Web开发人员应当知道的15个开源项目
2011-04-06 21:19 1066如今,构建网站和开发W ... -
百度互联网创业者俱乐部 搜索引擎优化指南
2011-04-06 19:28 991全部内容在附件中!!! 前 言度互联网创业俱乐部搜索引擎优化 ... -
【经验分享】十招让你设计不恶心的PPT
2011-04-03 08:47 741PPT制造出来的糟 ... -
用google的adplanner看看网站的日访问量
2011-04-03 07:44 846https://www.google.com/adplanne ... -
win2003 服务器设置 完全版
2011-03-27 22:13 1001第一步:一、先关闭不需要的端口 我比较小心,先关了端口。只 ... -
WINDOWS服务器安全设置
2011-03-27 22:09 878前言 其实,在服 ... -
百度开放平台中的万年历被提取出来了
2011-03-02 23:17 914http://apps.bdimg.com/ ... -
分享一个飘浪主题下载的网站
2011-02-12 13:04 737http://www.ommoo.com/ Q:装了某款主题 ... -
导出到word
2011-02-09 09:01 1017<html> <head> ... -
二十个你必须知道的SEO概念
2011-02-06 20:48 787如果你拥有一个网站或独立博客,或者你的工作多少和互 ... -
知道怎么查看一个网站用的是什么web服务器吗?
2010-12-21 20:56 2088知道怎么查看一个网站用的是什么web服务器吗? http:/ ... -
开源文档管理系统
2010-12-14 12:55 1107http://dist.logicaldoc.com/dist ... -
国务院办公厅关于2011年部分节假日安排的通知
2010-12-10 18:59 1260国务院办公厅关于2011年部分节假日安排的通知国办发明电〔 ... -
国外免费md5破解网站
2010-11-29 21:25 4047NO.1http://www.md5decrypter.c ...
相关推荐
椰树web漏洞扫描器
基于python的web漏洞挖掘技术的研究(django) 关键词:Web漏洞挖掘;python;django;mysql; 本次技术通过利用Python技术来开发一款针对web漏洞挖掘扫描的技术,通过web漏洞的挖掘扫描来实现对网站URL的漏洞检测,...
基于python+Flask的Web漏洞扫描系统-信息搜集 漏洞扫描-毕业设计源码+使用文档(高分优秀项目) 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,...
毕业设计:Python web漏洞挖掘技术实现与研究(源码 + 数据库 + 说明文档) 2 Web应用程序漏洞检测技术 3 2.1 网络爬虫 3 2.1.1 网络爬虫原理 3 2.1.2 爬取策略 3 2.1.3 Scrapy爬虫架构 4 2.2 SQL注入漏洞 4 2.3 XSS...
* * * * * * * * * * * * 目录页 WEB漏洞验证 漏洞验证的基本流程 漏洞验证 得到扫描器扫描报告后,开始进行漏洞验证。 一般步骤是:先提取关键信息,验证漏洞是否存在,判断漏洞危害性,重新记录整理报告。 每个...
【安恒明鉴Web漏洞扫描器】是一款专业的网络安全工具,主要针对Web应用程序的安全性进行深度检测,以发现潜在的漏洞并帮助企业或个人提前预防网络攻击。这款扫描器使用了先进的扫描技术和策略,能够自动化地执行多种...
Web 漏洞挖掘需要对目标进行全面信息收集,包括域名信息、子域名信息、敏感信息、敏感文件、敏感目录、Email 收集、IP 段信息收集、常用端口信息收集等,然后使用相应的工具和技术进行渗透和攻击。
WebPenFw是一个基于Python Flask框架构建的Web漏洞信息收集与利用工具。Flask是一个轻量级的Web服务器网关接口(WSGI)Web应用框架,以其简洁和模块化的特性而受到开发者们的喜爱。它提供了基础的路由、模板渲染、...
Web漏洞是网络安全领域的一大威胁,尤其对于依赖互联网的业务和服务来说。这些漏洞可能导致数据泄露、系统瘫痪甚至完全控制服务器。下面将详细讨论标题和描述中提到的几个关键的Web漏洞类型及其防范方法。 首先,...
有椰树web漏洞扫描器、bruteXSS-master和safe3WVS等漏洞扫描工具,工具简单易操作,适合网络安全专业人员学习和使用,功能强大,可以对大多数网站进行扫描并给出网站相关漏洞信息,网络安全人员必备工具!
8. **asp.txt**:这可能是一个包含ASP(Active Server Pages)相关漏洞信息的文本文件。 综合以上信息,椰树WEB漏洞扫描器提供了全面的Web安全解决方案,不仅针对基本的SQL注入和XSS漏洞,还关注旁站扫描、CMS安全...
小龙web漏洞扫描工具,可批量扫描,绝对无毒,拒绝黑软
Acunetix Web Vulnerability Scanner 最新版本扫描工具,安全web漏洞扫描工具,非常好用。 web漏洞扫描,
其他常见的Web漏洞包括跨站请求伪造(CSRF)、文件包含漏洞、命令注入漏洞等。防范这些漏洞的方法包括: * 验证用户的输入 * 限制用户的权限 * 使用安全的编码和解码方式 * 及时更新和修补漏洞 Web应用程序的安全...
数据库,即探测数据库,是系统的核心,保存已知各类Web漏洞的渗透性的探测数据,即攻击代码或信息获取代码。 本系统的设计思想主要包括: 1. 能够找到Web应用程序的错误以及检测Web服务器以及CGI的安全性。 2. ...
基于python+Flask的Web漏洞扫描系统-信息搜集漏洞扫描毕业设计源码+使用文档(高分优秀项目)。该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶...
web漏洞安全.ppt
WEB漏洞通常是指网站程序上的漏洞,可能是由于代码编写者在编写代码时考虑不周全等原因而造成的漏洞,常见的WEB漏洞有Sql注入、Xss漏洞、上传漏洞等。可以利用该扫描器来检查自己的网站是否有安全漏洞。
Web安全漏洞加固手册 V2.0