- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
跨站脚本说明
跨站脚本说明
跨站脚本说明
以前看过分析家写过一篇文章,介绍跨站脚本的安全隐患,当时只是知道有这样的
问题,也没有仔细阅读,目前此类问题经常在一些安全站点发布,偶刚好看到这样一篇文章
,
抱着知道总比不知道好的想法,翻译整理了一下,原文在偶主页的collection目录里,错误
之处请
多多指点。
OK,go
什么是跨站脚本(CSS/XSS)?
我们所说跨站脚本是指在远程WEB页面的html代码中插入的具有恶意目的的数据,用户认为该
页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行,
有时候跨站脚本被称为XSS,这是因为CSS一般被称为分层样式表,这很容易让人困惑,
如果
你听某人提到CSS或者XSS安全漏洞,通常指得是跨站脚本。
XSS和脚本注射的区别?
原文里作者是和他一个朋友(b0iler)讨论后,才明白并非任何可利用脚本插入实现攻击的
漏洞都被称为XSS,还有另一种攻击方式:Script Injection,他们的区别在以下两点:
1.(Script Injection)脚本插入攻击会把我们插入的脚本保存在被修改的远程WEB页面里,如
:sql injection,XPath injection.
2.跨站脚本是临时的,执行后就消失了
什么类型的脚本可以被插入远程页面?
主流脚本包括以下几种:
HTML
JavaScript (本文讨论)
VBScript
ActiveX
Flash
是什么原因导致一个站点存在XSS的安全漏洞?
许多cgi/php脚本执行时,如果它发现客户提交的请求页面并不存在或其他类型的错误时,
出错信息会被打印到一个html文件,并将该错误页面发送给访问者。
例如: 404 - yourfile.html Not Found!
我们一般对这样的信息不会注意,但是现在要研究CSS漏洞的成因,我们还是仔细看一下。
例:www.somesite.tld/cgi-bin/program.cgi?page=downloads.html
该URL指向的连接是有效的,但是如果我们把后面的downloads.html替换成brainrawt_owns_
me.html
,一个包含404 - brainrawt_owns_me.html Not Found! 信息的页面将反馈给访问者的浏览
器。
考虑一下它是如何把我们的输入写到html文件里的?
OK,现在是我们检查XSS漏洞的时候了!
注意:下面仅仅是一个例子,该页面存在XSS漏洞,我们可以插入一写javascript代码到页面
里。当然方法很多
www.somesite.tld/cgi-bin/program.cgi?page=scriptalert(XSS_Vuln_Testing)/sc
ript
当我们提交这个URL的时候,在我们的浏览器中弹出一个消息框,XSS_Vuln_Testing?
这个例子只是一个XSS漏洞的简单演示,并无实际意义,但足以说明问题所在。
下面我们分析一下造成该运行结果的原因,program.cgi对我们的输入没有经过有效过滤处理
,
就直接写入404 error页面中,结果创建了一个页面,如下:
html
b404/b - scriptalert(XSS_Vuln_Testing)/script Not Found!
/html
其中的javascript脚本通过浏览器解释执行,然后就出现了你所看到的结果。
如何利用XSS来完成hacking?
如同前面所提到,如果用户提交的请求不能得到满足,那么服务器端脚本会把输入信息写入
一个
html文件,当服务器端程序对写入html文件的数据没有进行有效过滤,恶意脚本就可以插入
到
该html文件里。其他用户浏览该连接的时候脚本将通过客户端浏览器解释执行。
事例:
假设你发现myemailserver.tld有CSS漏洞,你想要获得其中一个人的email帐号,比如我们的
目标是b00b这个人。
www.myemailserver.tld/cgi-bin/news.cgi?article=59035
把上面存在CSS漏洞的连接修改一下:
www.myemailserver.tld/cgi-bin/news.cgi?article=hax0red
这会创建了一个错误页面,我们得到如下信息:
Invalid Input! [article=hax0red]
当插入下面这样的javascript代码时,你的屏幕上会弹出一个包含test的消息框。
www.myemailserver.tld/cgi-bin/news.cgi?article=scriptalert(test)
/script
script并没有打印到屏幕上,它是隐藏在背后执行,由于服务器端程序并没有对
scri
文档评论(0)