跨站脚本攻击实例改的是客户端,跟服务器有什么关系呢?

防止跨站脚本攻击会话劫持的客户端解决方案研究
  web应用在当今已成为在线服务的最主要提供方式。同时,它存在的漏洞也正逐渐被人们所发现,并且以惊人的速度显露出来。web应用一般存在利用JavaScript脚本代码来实现的部分,这些脚本代码嵌入在web页面中来支持客户端的动态行为。为了防止用户环境遭受恶意JavaScript脚本代码的破坏,研究人员开始利用一种输入净化机制,这种机制限制程序只能访问与它的原站点相关的资源。然而,不幸地是,当用户被诱使从中间人或可信站点下载恶意JavaScript脚本代码时,这些安全机制将无法发挥作用。在这种情况下,恶意脚本对属于可信站点的所有资源(如认证口令和具有会话进程标识的cookies)且有完全的访问权限。这种攻击被称为跨站点脚本攻击。 万维网的驮马协议,HTTP协议和HTTPS协议有意地被设计成无状态的。这就意味着web应用无法在多个请求中追踪到用户,除非它在HTTP或HTTPS协议的顶端添加追踪机制。会话标识就是最被普遍使用的追踪机制。会话标识是随机数据的唯一字符串,一般来说由数字和字符组成,这个字符串由web应用生成并通过cookie的方式发送给用户。在会话标识被发送之后,每个用户发出的请求都在其它请求中包含了该应用发送给他的会话标识。通过使用会话标识,web应用能够识别不同的用户,区分并发的请求和及时追踪用户。会话标识是首要的攻击目标,因为成功的捕获并重演会话标识可以为攻击者提供易受攻击web应用的当即认证。根据窃取到的ID所属用户的访问权限,攻击者可以像普通用户,甚至是特权用户一样登录网站,并访问各种隐私数据,如email,密码,家庭住址,甚至是信用卡号码等。这就能使跨站点脚本攻击成为窃取会话标识的最普遍的方式。 跨站点脚本攻击是一种使用范围非常广的攻击方式,整体来说也可以看作是代码注入攻击。在代码注入攻击中,攻击者输入一些数据,这些数据将被认为是代码并被正在运行的应用所执行。在跨站点脚本攻击中,攻击者欺骗用户浏览器以他的名义来执行Java脚本代码,并因此获得访问存储在浏览器中的敏感信息的权限。运行在用户浏览器中的恶意JavaScript脚本能够访问运行域中cookie的内容。而会话标识一般通过cookies来传播,所以被插入的JavaScript脚本能够读取这些会话标识并将其转移到受攻击者控制的服务器上。然后攻击者将用户的会话反馈给易受攻击的网站,这些网站以为他是正常用户并有效地进行授权。会话劫持是现今被广泛使用的跨站点脚本攻击类型之一,因为采用会话标识的web应用中每个关键任务都易受到这种方式的攻击。为了让脚本不被识别为恶意脚本,攻击者会用不同的编码方法对其进行编码,比如使用HEX。通过这种方法,Web站点就会像显示站点中的有效内容一样在页面显示恶意内容。如果Web应用程序没有验证输入,攻击者只需诱导用户选择恶意链接,然后Web应用程序就会从用户那里收集机密信息,这就让攻击者能够获取用户会话信息并窃取用户凭证,重定向到另一个Web站点上的网页,然后插入恶意代码来破坏cookie,公开SSL连接,访问受限或私人站点,甚至触发一系列这样的攻击。 目前有一种机制能够从某种程度上在跨站点脚本漏洞中用来保护用户免受会话劫持——HTTP-Only。HTTP-Only是微软公司引进的一种网页浏览器特性,它可以为IE6及后续版本中的cookies提供防护措施。HTTP-Only是一种标记,它与包含敏感信息的cookie,如会话标识,一起由web应用发送给用户。它指示用户浏览器将cookie的值与任何运行在浏览器中的脚本语言隔离开来。因此,如果cookie被表示为HTTP-Only, Java脚本想要访问它时,只能得到一个空的字符串。因此,使用HTTP-Only cookie有助于阻止攻击者使用XSS漏洞实施会话攻击。但是这依然不是一种万能的解决办法,跨站点追踪(XST)是一种攻击技巧,有时候可以利用它来避开HTTP-Only cookie提供的保护,允许客户端代码访问标记为HTTP-Only cookie的值。这种技巧使用许多Web服务器默认激活的HTTP TRACE方法,它主要用于诊断目的。当服务器收到一个使用TRACE方法的请求时,它通过一条消息做出响应,消息主体包含服务器收到的TRACE请求的的原始文本,TRACE方法之所以可用于诊断目的,其原因在于,服务器收到的请求可能不同于客户发送出的请求,因为请求会被拦截代理服务器等修改。这个方法可用于确定请求在客户与服务器之间传送时发生了哪些变化。浏览器在HTTP请求中提交所有cookie,包括使用TRACE方法的请求以及标记为HTTP-Only的cookie。这样,请求和响应中都包含标记为HTTP-Only的cookie,这种行为为XST攻击提供了机会。如果可以使用客户端脚本提出一个TRACE请求,并读取这个请求的响应,那么这段脚本就能够访问到标记为HTTP-Only的cookie,即使通过document.cookie无法访问的到。当然,攻击还依赖于应用程序中存在的XSS漏洞,以注入恶意的脚本。 在本文的研究中,我们设计了一种称为SessionImmunizer的系统。它是处于浏览器和服务器之间的一种代理,可以审查所有发出的请求和进来的应答。通过使用各种方法,它探测进来的HTTP头文件中的会话标识,将它们剥离出来并将它们的值存储在自己的数据库中。在每个发出的请求中,SessionImmunizer都会检查请求的域,并将之前剥离出来的值添加回去。当受到会话劫持攻击时,浏览器仍然会执行会话劫持代码,但是由于浏览器从未收到过会话信息,因此该信息不会被攻击者获取。本文提出的系统不会影响web用户和web服务器的任何功能应用,它单独运行在客户端,并且不依赖于web服务器和可信的第三方……
[关键词]:;;;;;;;;;
[文献类型]:硕士论文
[文献出处]:中南大学
硕士论文暂不提供下载
手机知网:&&|&&
中国知网客户端
海量文章,一站下载
万千书刊,个性订阅当前访客身份:游客 [
当前位置:
我的项目中有个判断登陆session过滤器来控制访问,不知道管用吗?我测试过进入系统以后,可以在form里提交 Javascript脚本。虽然不登陆进不了系统,但是还是觉得不安全。有什么方法可以防范的?
共有17个答案
<span class="a_vote_num" id="a_vote_num_
替换、过滤,曾今用过antisamy,可以试试
--- 共有 1 条评论 ---
这个确实挺好
(10个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
啥叫跨站脚本攻击?XSS?但是XSS和楼主说的session啥的一点关系没有啊?还是CSRF?
--- 共有 1 条评论 ---
项目有session过滤,不登陆进不了系统内部。系统内部可能存在跨站脚本漏洞。我是想说别人不正常登陆,能不能利用跨站脚本漏洞攻击我的web应用?
(11个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
都登陆不了怎么跨站脚本攻击。。。&跨站脚本攻击是通过 1。提交跨站脚本 &2。存于目标服务器 3。目标服务器返回跨站脚本(未转译)输出到浏览器 4。打广告了
--- 共有 2 条评论 ---
: 理论上是这样的 如果没有权限漏洞
(11个月前)&nbsp&
是不是说只要让攻击者卡在登陆页面进不去,就不会有跨站脚本的攻击?
(11个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
/blog/869080
--- 共有 1 条评论 ---
看了你推荐的这个文章,网上搜了一些资料,说是可以在Tomcat的 context.xml里添加&Context useHttpOnly="true"& ... &/Context&,但我有个疑问:&Context& 标签里的省略号部分的内容该填什么?空着行吗?比如&Context useHttpOnly="true"&&/Context&
(11个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
: 当然可以攻击,通过xss在页面中嵌入一个恶意脚本,该脚本可以把一些信息传给攻击者,例如cookie,甚至可以把页面源码都传递出去。
攻击者获得页面源码之后,可以知道一些敏感操作的接口,例如添加管理员等等,然后再次利用XSS,在页面中植入添加管理员的请求,只要有管理员访问这个页面,就会添加攻击者设定的用户。
当然,上述的前提是攻击者能够植入XSS代码
--- 共有 3 条评论 ---
(11个月前)&nbsp&
: 那是自然,但不排除有其他途径植入
(11个月前)&nbsp&
那把攻击者卡在登陆页面进不去系统,可以防止他往我的系统植入XSS代码嘛?我测试过登录页面好像无法注入Javascript代码,只有系统里面的form会注入Javascript代码。
(11个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
跨站漏洞是需要其他正常用户进入到漏洞页面,执行了攻击者构造的恶意JS代码偷取cookie,假如攻击者获得高权限用户的cookie就有机会以高权限用户的身份进入系统,然后再进一步入侵。
所以治本的方法就是对攻击者提交的数据进行过滤,不给其执行的机会。
--- 共有 2 条评论 ---
提交过滤不是明智选择
会改变用户本意
理应编码输出
(11个月前)&nbsp&
这位大神,要是想对攻击者提交的数据进行过滤都一般采取什么方法?我的项目已经做完了,要改的话麻烦吗?
(11个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
楼主说的是跨站注入
还有一种叫跨站授权
--- 共有 1 条评论 ---
跨站授权怎么防范?
(11个月前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
比如将cookie的httponly属性设置为true,这样cookie将只能通过http协议访问而不能通过脚本访问,像JavaScript/Flash插件/Java插件/ActiveX控件,一定程序上能防范XSS脚本攻击.
http://www.php.net/manual/zh/function.setcookie.php
httponly:When TRUE the cookie will be made accessible only through the HTTP protocol. This means that the cookie won't be accessible by scripting languages, such as JavaScript. It has been suggested that this setting can effectively help to reduce identity theft through XSS attacks (although it is not supported by all browsers), but that claim is often disputed.
<span class="a_vote_num" id="a_vote_num_
输入:校验用户输入。 输出:HTML编码输出。
<span class="a_vote_num" id="a_vote_num_
jstl的c标签就已经处理了,所有输出都用c out就能解决
--- 共有 5 条评论 ---
那么&c:when test=""&
这个test里面的还要加c:out 吗?
(11个月前)&nbsp&
: 不信你可以试试,你注入一个alert,查看加入c out前后的现象
(11个月前)&nbsp&
value="&c:out value='${值}'/&"
(11个月前)&nbsp&
: 你可以不管,如果不管的话你要在输出的地方全部确保使用c out 就没问题
(11个月前)&nbsp&
&input value=""&
value的值也用 c:out
那输入不用管嘛?
(11个月前)&nbsp&
有什么技术问题吗?
嘎嘣豆的其他问题您所在的位置: &
跨站脚本攻击的原理(2)
跨站脚本攻击的原理(2)
清华大学出版社
《软件安全实现――安全编程技术》第8章Web编程安全,本章主要针对Web编程中的一些安全问题进行讲解。首先讲解了Web运行的原理,然后讲解了URL操作攻击,接下来针对Web程序的特性,讲解了四种页面之间传递状态的技术,并比较了它们的安全性,最后针对两种常见的安全问题:跨站脚本和SQL注入进行了详细叙述。本节为大家介绍跨站脚本攻击的原理。
8.4.1& 跨站脚本攻击的原理(2)
提交,结果为:
说明脚本也可以执行,打开queryResult.jsp客户端源代码,为:
于是,程序可以让攻击者利用脚本进行一些隐秘信息的获取了!输入如下查询关键字:
提交,得到结果:
消息框中,将当前登录的sessionId显示出来了。很显然,该sessionId如果被攻击者知道,就可以访问服务器端的该用户session,获取一些信息。
在JSP系列中, sessionId保存在Cookie中。
实际的攻击是怎样进行的呢?如前所述,攻击者为了得到客户的隐秘信息,一般会在网站中通过一些手段放入一段可以执行的代码,吸引客户执行(通过鼠标点击等);客户点击后,代码执行,可以达到攻击目的。比如,可以给客户发送一个邮件,吸引客户点击某个链接。
以下模拟了一个通过邮件点击链接的攻击过程。攻击者给客户发送一个邮件,并且在电子邮件中,通过某个利益的诱惑,鼓动用户尽快访问某个网站,并在邮件中给一个地址链接,这个链接的URL中含有脚本,客户在点击的过程中,就执行了这段代码。
我们模拟一个邮箱系统,首先是用户登录页面,当用户登录成功后,为了以后操作方便,该网站采用了"记住登录状态"的功能,将自己的用户名和密码放入cookie,并保存在客户端:
login.jsp%@&page&language="java"&import="java.util.*"&pageEncoding="gb2312"%&欢迎登录邮箱 &&action="login.jsp"&method="post"&&&&&请您输入账号: &&&&&&name="account"&type="text"&&&&&&&&&&请您输入密码: &&&&&&name="password"&type="password"&&&&&&&&&&&type="submit"&value="登录"&&% &&&&&//获取账号密码 &&&&&String&account&=&request.getParameter("account"); &&&&&String&password&=&request.getParameter("password"); &&&&&if(account!=null) &{ &&&&&&&&&//验证账号密码,假如账号密码相同表示登录成功 &&&&&&&&&if(account.equals(password)) &{ &&&&&&&&&&&&&//放入session,跳转到下一个页面 &&&&&&&&&&&&&session.setAttribute("account",account); &&&&&&&&&&&&&//将自己的用户名和密码放入cookie &&&&&&&&&&&&&response.addCookie(new&Cookie("account",account)); &&&&&&&&&&&&&response.addCookie(new&Cookie("password",password)); &&&&&&&&&&&&&response.sendRedirect("loginResult.jsp");& &&&&&&&&&}& &else &{ &&&&&&&&&&&&&&out.println("登录不成功"); &&&&&&&&&}& &&&&&}& &%&
【责任编辑: TEL:(010)】&&&&&&
关于&&&&的更多文章
如何应对21世纪新商业环境中的变化?全球最大商务社交网LinkedIn
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
享誉全球的未来学家理查德.沃森,用科学和多元的视角
本书是图文并茂的Python学习参考书,书中并不包含深奥
对于任何一门编程语言来说,算法都是程序的"灵魂"。正
本书将介绍如何创建可交互的Web站点,包括从最简单的订单表单到复杂的安全电子商务站点。而且,读者还将了解如何使用开放源代码
51CTO旗下网站新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
空间积分0 信誉积分100 UID480161阅读权限10积分249帖子精华可用积分249 专家积分0 在线时间1 小时注册时间最后登录
白手起家, 积分 249, 距离下一级还需 -49 积分
帖子主题精华可用积分249 专家积分0 在线时间1 小时注册时间最后登录
论坛徽章:0
今天有用户反映用绿盟科技“极光远程安全评估系统”安全评估系统扫描我们的业务服务器,说有系统漏洞
Apache HTTP Server畸形HTTP方式413错误页面跨站脚本漏洞&&
让我们提供解决方案
我就日了,我们服务器上的webserver是tomcat5,而且就运行了一个静态网页,没办法根据apache的修改配置方法修改阿?
请问应该怎么修改?
具体漏洞描述如下:
Apache HTTP Server畸形HTTP方式413错误页面跨站脚本漏洞
漏洞描述& & & & Apache HTTP Server是一款流行的Web服务器。
Apache HTTP Server处理畸形用户请求时存在漏洞,远程攻击者可能利用此漏洞获取脚本源码。
如果远程用户提交的畸形HTTP请求承载有以下形式之一负载(如JavaScript)和无效长度数据的话,就会导致Apache HTTP服务器返回客户端所提供的脚本代码:
两个Content-length头等于0,如Content-Length: 0[LF]Content-Length: 0
一个Content-length头等于两个值,如Content-length: 0, 0
一个Content-length:头等于负数,如Content-length: -1
一个Content-length头等于很大的值,如Content-length: 。
提交了无效长度数据后Apache就会返回413 Request Entity Too Large错误,导致在用户浏览器会话中执行任意HTML和脚本代码。
解决方案& & & & 临时解决方法:
* 向Apache配置文件添加ErrorDocument 413语句禁用默认的413错误页面。
厂商补丁:
Apache Group
------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
补丁信息& & & &
威胁分值& & & & 7
NSFOCUS& & & & 11228
CVE编号& & & & CVE-
BUGTRAQ& & & & 26663
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
空间积分0 信誉积分100 UID480161阅读权限10积分249帖子精华可用积分249 专家积分0 在线时间1 小时注册时间最后登录
白手起家, 积分 249, 距离下一级还需 -49 积分
帖子主题精华可用积分249 专家积分0 在线时间1 小时注册时间最后登录
论坛徽章:0
空间积分0 信誉积分1044 UID阅读权限50积分3196帖子精华可用积分3196 专家积分15 在线时间3143 小时注册时间最后登录
小富即安, 积分 3196, 距离下一级还需 1804 积分
帖子主题精华可用积分3196 专家积分15 在线时间3143 小时注册时间最后登录
论坛徽章:2
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处

我要回帖

更多关于 阻止跨站脚本 的文章

 

随机推荐