你丫有本事去黑个日本网站,黑cnodejs这开源的已被人捅破漏洞的算个鸟啊
发布于 12 年前 作者 j4cnodejs 17064 次浏览 最后一次编辑是 8 年前

小人!

83 回复

今天上班发现头像被人篡改, 变成一个低俗图像, 鄙视之! 小人!

今天fork nodeclub, 把漏洞补了!

是啊,开源的,有时间的都要来帮助完善。

头像和cnodejs么有关系。 是调用的其他网站的。

@young40 是跟cnodejs没关系,但是我的头像链接地址被人篡改了

没看见有pull request啊,代码在哪里?

同意,黑cnodejs有毛用啊,多黑黑日本的网站,我们举双手鼓掌,我也保钓,大家一起来保钓

@a272121742 同意把老雷的JJ切了的举手~

改别人头像这个事不是我干的啊,你要相信我的人品。。。

@leizongmin 论坛左边这个是怎么的, 在头像链接里加那个啥么? 下次记得黑之前去 Github 提交 request 啊亲

@jiyinyiyong 受楼主启发,才跑上去找到的,但是我不会修复这个漏洞

@leizongmin 这么简单的修改, 我就不动手啦~~我前面的帖子里已经写得很清楚了, 在 GitHub 里也发了Issue

@jiyinyiyong @leizongmin 我已经pull request了,他们管理员不鸟我啊,没办法~

@j4cnodejs issue也木有啊,你提交到那个项目地址了?

@suqian 管理员反应太慢了

@leizongmin 我知道nodeclub有许多漏洞和bug,因为我们开源了,所以漏洞很容易被发现。但是我们开源的原因,也正是想要社区的力量,大家一起来完善这个nodeclub。

看着源代码来黑cnode,完全没有意思。

@suqian 头像也变成兔子了?

hujs 能玩这么 high, 搞得人无语地羡慕…

原来是html模板使用了单引号导致的。md

是的,有力量就贡献自己的力量~

@suqian @leizongmin @j4cnodejs @a272121742 苏大大已经修复了超链接的注入和头像url的注入,万分感谢,只是现在内容页有侧漏,不知道什么原因引起的

什么侧漏? 我这里貌似显示很正常

##测试一下安全的HTML标签 一下结果来自Google搜索

javascript this详解(转) - 独自莫凭栏- 博客园 www.cnblogs.com/felix2007/archive/2007/…/682670.html - 网页快照2007年3月21日 – 不过这里其实可以写任何合法的JavaScript语句,要是高兴在此定义个类也可以(不过将会是个内部类)。这里的原理是脚本引擎生成了一个div实例 … [图解] 你不知道的JavaScript - “this” - JavaScript - yaosansi’s Blog www.yaosansi.com/post/1263.html - 网页快照2008年4月21日 – JavaScript 里的this 到底指得是什么?很多人都会告诉你this 指的是当前对象。这样理解对么?在大多数情况下确实没错。比如我们经常会在网页上 … Javascript this关键字使用分析_javascript技巧_脚本之家 www.jb51.net › 网络编程 › JavaScript › javascript技巧 - 网页快照这是来自http://www.quirksmode.org/js/this.html这篇文章里对this的定义,直接看定义似乎什么也不知道,下面通过实例来说明各种情况下this所指代的对象以及原理。

</p><script>alert(‘hello’)</script>

@leizongmin 看到了,谢谢!

@snoopy 看了一下源代码, 应该是原xss攻击脚本被sanitize().xss()后, 残余的代码导致页面html混乱. 对于安全的标签问题不大, 至少防住了攻击!

@leizongmin 加油,继续测试,找出新的漏洞,我们好学习,好修复!

@leizongmin 恭喜你,你又成功了! 快说漏洞在哪里

我了个去啊,什么情况啊?</p><p>

html 标签还没过滤掉~!!!!!!!!

@snoopy @j4cnodejs 当嵌套HTML标签时,只过滤最外层的标签,里面的标签过滤不完整,可能是正则匹配问题

举个例子!

比如以下代码,最外面的onload="ooxx"被过滤了,但是里面那个没有被过滤

 <p onload="ooxx">not
<p onload="ooxx()">
ok
</p>
</p>

@leizongmin 研究一下 validator 的 xss() 源码, 找找对策

不需要这样,只需要先闭合标签,再打开标签即可,比如:</p><p id=“12321”>12321

我就为12321这个P增加了ID属性了,当然也可以乱来了

@j4cnodejs xss()方法根本就不会过滤这个的,它只删除<script>标签

@leizongmin 删除了script标签, onload, href, onXXX事件它也都去查的

@snoopy 这算是validator的Bug了

@leizongmin 那如果在xss()基础上再过滤掉 $.getScript 呢? 就是禁止从外部获取 js

过滤所有onXXX才是根本,只要可以执行js代码,不用$.getScript还可以用其它方法嘛,就像上次过滤了单双引号还可以用String.fromCharCode()生成字符一样

validator没有过滤id属性

@leizongmin 对, 过滤所有标签的on事件, 这个要反馈给validator作者

问题找到了: validator@0.4.11 最新版, xss.js Line 150: 它虽然有过滤事件处理的机制, 但是它只替换第一个找到的匹配…无语

str = str.replace(new RegExp("<([^><]+?)("+event_handlers.join('|')+")(\\s*=\\s*[^><]*)([><]*)", 'i'), '<$1$4');

把 ‘i’ 改成 ‘gi’ 是否可以解决? @snoopy, @leizongmin ?

@leizongmin @snoopy 虽然你们可以很容易就找到漏洞,但是只为了想炫耀,我觉得没什么必要。

如果nodeclub只是我负责开发,那么开源的意义都没有了。

为什么国外的geek会那么喜欢参与开源项目,是因为他们会动手帮忙解决问题,而不是找到问题就想去炫耀。

无论如何,感谢你们。特别是在我正在参加“沪JS”的时候,每想到你们在这个时间点上还这样搞cnode,我感觉很伤心。

也同时提醒着我,不是所有人都是我想象中的好人。

遥想起去年的高斯炮攻击,我们找到了攻击方法,不是第一时间去攻击别人的nodejs网站,而是找到node团队,找到tj,找到v8的人,提交攻击方法,然后等待反馈,希望能尽快让node去修复此问题。

我们在深圳nodeparty上,虽然演示了如何攻击,但是也是本地演示,而且代码无论如何也不会放出来。

做个善良的程序员,会让更多人羡慕你。

  • 不提交pull request是因为暂时没想出好的解决方法,只想着尽可能找出潜在的xss漏洞;

  • 被多次说成是“炫耀”,我也感觉很伤心,我以为仅仅是“开个玩笑”而已;

  • 为什么事情发生在“沪JS”期间,我觉得那只是时间巧合而已,并没有所谓的“预谋”;

  • 所幸还没有更大的“危害”出来,要不我跟@snoopy 都成千古罪人了;

  • 从此洗心革面,做个善良的程序员;

我看着心急, 我git新手, 还不知道怎么使用 fork - pull request 那一套啊, 谁来教教我

@leizongmin 你这段html怎么裸奔了? 早上不是这样的啊

@j4cnodejs 相对 Git 本身这俩步骤是不难了 :D

@suqian @leizongmin @j4cnodejs 苏大大你误会了,老雷真的只是好玩,如果他是恶意用户的话,那天发现上传漏洞他就可以挂马了,请相信我们都是善良的人。 之前我pull-request已经修复了a标签的执行js代码漏洞了,不知为何现在又出现了。 目前markdown中有一个html标签没有过滤干净的问题,我和老雷会尽快pull-request的。 我也写了致歉信,希望大家能原谅我们

nodejs社区很好啊

关于这件事,我觉得写代码的责任心是很重要的。不管是开源还是不开源的东西都应该如此。当然从另外一个角度上来说,写开源代码,已经很无私的。

早在漏洞爆发前就说过,cnodejs的代码质量很低。出这些问题,是必然的。

写代码是良心活。。

看到两年前的这个帖子,笑尿了,本来就不应该在回复里面允许 HTML 直接写,现在我已经全部过滤了,只能用 markdown。

@alsotang 看完我决定赶紧回去改改我的博客评论模块…

@klamtlne 自己写的博客?怎么不用 disqus 或者多说这类的?

哈哈哈哈哈

@alsotang 纯粹是学习一下,disqus是很好用,多说没用过

好像发现了bug

不知道还有其他童鞋发现没

等周末看看能不能解决

reply有问题? 不过要鼠标移那才触发,还有别的么?

@booxood 果然这里没有过滤!@alsotang

@booxood 描述一下我来修修

@albertshaw ??有什么问题

还没fork工程,就不提pr了,直接说下发现的小问题 topic/index.html 下面的script

var replyContent = $replyItem.find(’.reply_content’).text().trim()

然后replyContent被push进chats

然后被直接append进$repliesHistoryContent

$repliesHistoryContent.append(’<div class=“item”>’ + pair[0] + pair[1] + pair[2] + ‘</div>’);

如果replyContent文本带显示html标签的,这里append就出问题了。

@alsotang 就是 @xadillax @albertshaw 说的问题

“查看对话”中的内容没有做处理,直接嵌了

@booxood 对话中的内容即使有 html 的话,也会被 escape 掉啊。

@xadillax @albertshaw 对话中的内容即使有 html 的话,也会被 escape 掉啊。

@booxood @xadillax @albertshaw 嗯嗯,这里确实存在问题,我现在已经修了,你们看看好了没。

@j4cnodejs 你确定是被修改了么?

谁用低版本的IE点击试试,我的IE11倒是不会弹。[test link](vbscript:alert(1))

回到顶部