-
特性导致的安全问题之twitter bootstrap xss风险
余弦(@evilcos)
关于bootstrap
bootstrap是twitter开源的一个前端开发框架(http://twitter.github.com/bootstrap/index.html),你还在怕不会写HTML/CSS吗,各种布局样式超有Web2.0范,bootstrap都帮你搞定了,你只要会搭积木,就可以做出漂亮的网页:),bootstrap的js特效是基于jquery的,所以使用它之前还得调用jquery。
潜在XSS风险
我们在使用bootstrap发现了一个潜在的XSS点,这个最早是小虎同学(@not_so_bad)在做网页时发现的,弹出了一个框,吓了一跳,报给官方,被忽略。这个问题是这样的:
bootstrap的tooltips插件(http://twitter.github.com/bootstrap/javascript.html#tooltips)可以美化标签的title显示,我们知道默认的显示很一般的,就是操作系统UI的风格,美化后就亮了,不过亮是有代价的。看代码说话。
Read More »5 Comments -
特性导致的安全问题之github被黑
余弦(@evilcos)
一些资料
github昨天被黑了(在这:wow how come I commit in master? O_o),讨论的很激烈。这个过程有人分析了(这:Hacking Rails (and GitHub)),这次被黑是因为rails的一个特性导致的安全问题(这里已经分析的很详细了:從Github被Hack,談Rails的安全性(Mass-assignment))。
特性害死人
我对rails不熟悉,不过看他们的分析,是由于外部进来的一组变量直接被map进模型中(变量名与模型的字段一一对应,模型的后面可是对应了数据表,多方便啊),这好像没啥奇怪的,不过由于一组变量名与模型的字段是对应的,在rails这个map机制下,可以提交一些本来没对外暴露的字段对应的变量名,这个可能导致字段原来的变量值被覆盖(整个过程类似PHP的变量覆盖风险)。可以覆盖了,那就可能导致各种安全问题。
Read More » -
知道创宇CEO赵伟入选福布斯中国“30岁以下创业者”
许多伟大的公司都是由年轻人创造的。福布斯中文版发起了寻找“30岁以下创业者”活动。知道创宇创始人赵伟榜上有名,他“希望自己能改变世界对中国网络安全的印象”,能让中国的互联网更好更安全。
-
知道创宇诚聘技术牛
我们深信优秀的工程师才是我们成长的源动力,我们渴求真正热爱编程,有强烈进取心、强烈好奇心、超强动手能力的牛人。我们鼓励创新;鼓励使用Linux;鼓励开源精神;我们提倡敏捷;实践敏捷。我们虽然只能为你提供7-15万的年收入,但我们能为你提供一个追求技术与梦想的乐园,这里没有任何官僚气息,这里有弹性工作时间;浓厚的技术氛围;双显示器办公;随时报销计算机图书购买费用;每天的水果与酸奶;业余爱好组(如游戏休闲/人工智能)等等。 Read More »
-
知道创宇研究小组进入封闭开发
-
[实用开源]端口转发小工具rtcp.py
余弦(@evilcos)
rtcp.py一直是我们使用于端口转发场景下的小工具,用python实现的。大概是09年,老杨给大家的一次作业,当时的几个技术人都写出了自己的一版,不过最终版本还是使用老杨写的,然后大家一起修修补补吧,经过几年的使用,感觉还是挺不错的,不愿独享,乘着这次blog新版出现,就开源了吧。
我们曾说过:我们来自开源,也将走向开源。
rtcp.py使用场景之一如下:
A服务器在内网,公网无法直接访问这台服务器,但是A服务器可以联网访问公网的B服务器(假设IP为222.2.2.2)。
我们也可以访问公网的B服务器。我们的目标是访问A服务器的22端口。那么可以这样:
1. 在B服务器上运行:
./rtcp.py l:10001 l:10002
表示在本地监听了10001与10002两个端口,这样,这两个端口就可以互相传输数据了。
2. 在A服务器上运行:
./rtcp.py c:localhost:22 c:222.2.2.2:10001
表示连接本地的22端口与B服务器的10001端口,这两个端口也可以互相传输数据了。
3. 然后我们就可以这样来访问A服务器的22端口了:
ssh 222.2.2.2 -p 10002
原理很简单,这个命令执行后,B服务器的10002端口接收到的任何数据都会传给10001端口,此时,A服务器是连接了B服务器的10001端口的,数据就会传给A服务器,最终进入A服务器的22端口。关于这个小工具的更多信息可以查看:https://github.com/knownsec/rtcp,同时欢迎关注https://github.com/knownsec/,我们的开源站!
-
机器人之旅:当Arduino遇上Android
相信很多同学都看过android手机那个很酷的宣传片(android手机+乐高搭建的解魔方机器人)。打小就一直梦想着能拥有一个自己亲手做的机器人,尤其是看完那部经典的机器管家(http://movie.douban.com/subject/1292529/,不过估计宅男们更喜欢《我的机器人女友》)。
貌似这个理想是渐行渐远了,直到老杨强烈给推荐arduino,让我们这些电路基础一般的爱好者也能有机会动手搭建自己的机器人,只要搞搞结构设计再coding一把,而不用困扰于具体的电路实现、传感器控制。鉴于现在的android手机功能都那么强劲,当然得充分利用一把了。上周在公司的showcase上给大家秀了一下基于arduino和android的蓝牙机器人小车,下一个目标就是整个遥控灰机。
什么是Arudino(百度百科):
Arduino,是一块基于开放源代码的USB接口Simple i/o接口板(包括12通道数字GPIO,4通道PWM输出,6-8通道10bit ADC输入通道),并且具有使用类似Java,C语言的IDE集成开发环境。
让您可以快速使用Arduino语言与Flash或Processing…等软件,作出互动作品。
Arduino可以使用开发完成的电子元件例如Switch或sensors或其他控制器、LED、步进马达或其他输出装置。Arduino也可以独立运作成为一个可以跟软件沟通的接口,例如说:flash、processing、Max/MSP、VVVV 或其他互动软件…。Arduino开发IDE接口基于开放源代码原,可以让您免费下载使用开发出更多令人惊艳的互动作品。
-
XSS Hack:获取浏览器记住的明文密码
余弦(@evilcos)
0x01. XSS获取明文密码的多种方式
我已经感受到Web潮流带来的巨大革新,尤其是最近HTML5越来越火。浏览器们在客户端瓜分着这个Web OS,只要是对用户体验好的功能,浏览器之间就会互相学习,然后去实现,但是实现总是存在一些差异,有些差异是用户体验上的,有些则可能带来安全问题。
这篇文章是想深入描述下浏览器记住用户密码这种机制带来的安全问题与实现上的一些差异性。黑客们如何通过技巧获取到浏览器保存的密码,明文。先回到XSS本身上,XSS获取明文密码的方式有哪些?
1. 通过DHTML钓鱼方式
比如document.write出一个登陆页面,或一个登录框。也就是目标网站的登录方式是怎样的,就通过DOM模拟出怎样的。用户很难区分同域内的钓鱼,如果再次输入密码登录时就悲剧了。
2. 通过JavaScript hook住密码框
满足某个事件(如onsubmit/onblur/onchange等)就记录之。
3. 通过JavaScript实现键盘记录器的功能
监听用户在表单里的击键事件,记录击键的值,有时候这个效果会非常不错。