成功的被入侵事件
11月24日一个美国ip的会员在习科论坛发了这样一个帖子:<China BTC platform Database for sale>
帖子首先用英文写成,翻译成多国语言后发表,大致意思是,这个会员是一个来自俄罗斯的黑客组织,成功入侵了中国某个非常大的比特币交易平台,并下载了数据库,希望将数据库以10万人民币的价格出售。
诈一看这个帖子似乎是个外国老油条骗钱的帖子,但小编对这个老外很感兴趣。于是小编让习科北美公司的同事与这位黑客联系联系上了。这位黑客昵称是Vegas,后面我们以V称呼他。
V为了向我们证明他确实成功入侵并下载了比特币交易平台的数据库,给我们发了这样一张截图:
从图中可以看出数据库文件疑似为bson(MongoDB)文件,使用Ultraedit打开的,关键内容被涂掉,但是应该是用户信息表,分辨特征有checkEmail,checkMobile,safepwd,registerTime,左侧有行数,共有大约28,000条数据或者更多。于是小编和同事与V进行了更深层次的交流,V说只有小编购买了数据库才会告诉小编是哪个比特币平台。
小编对比特币并不了解,所以去Google搜索了一下,中国能排的上名次的比特币交易平台一共有这么几个:btcchina,chbtc,okcoin,fxbtc,bitcoin86,rmbtb,小编再次询问了同事,同事说okcoin的价格跌了,会不会是okcoin,得到的答案是否定的。小编拿到的数据库有27,880条用户数据,用户信息存于MongoDB中,而交易记录存在MySQL,交易记录共保留3天,源码为Java代码。
细节推测
根据小编的询问,这个站点疑似是变量过滤不严导致的SQL漏洞。最为不幸的应该是数据库使用了root账户,mysql.user表中的file_priv为Y导致配置文件被读,进而悲剧。
不过V否认是通过SQL注入拿到权限,真相是什么恐怕只有chbtc和V才知道,我们也只能做有限度的推测。
小编访问了chbtc的官网的“关于我们”,大概看出了点端倪。
chbtc将“同一机房多服务器实时备份,跨城机房秒级备份,国际分钟级备份”定义为“银行级别安保”,在这里小编不得不吐槽了:除非你有跨城或者跨国网络专线,否则您的备份是怎样操作的?根据小编目测,所谓的跨城备份应该就是mysql.user中的root用户在host字段设置为%而已。小编个人认为chbtc的安保不仅没有尽到安保的作用,反而给黑客敞开了大门。
小编虽然不懂java,但是编程语言零零星星的差不多都能看懂,小编大概看了一下V给的源码,感觉完整度较高,但是代码编写水平并不是很好。尤其是怀疑代码是从别的地方扒来然后二次开发修改的。小编首先找到了一个疑似注入点的函数。
public List<OneSql> getOneFreezSqlInTrans() { PayUserBean pub = (PayUserBean)Data.GetOne(payName, "select Freez_Money from Pay_User where User_Id=?", new Object[] { Integer.valueOf(this.user_Id) }, PayUserBean.class); if (pub != null) { List pays = new ArrayList(); this.freez_Money = (pub.getFreez_Money() + this.money); pays.add( new OneSql("INSERT INTO freez_details (Freez_Details_Id,User_Id,Description,Date,Type,Money,Freez_Status,Freez_Money ) VALUES (" + this.freez_Details_Id + "," + this.user_Id + ",'" + this.description + "','" + this.date + "'," + this.type + "," + this.money + "," + true + "," + this.freez_Money + ")", -2)); pays.add(new OneSql("update Pay_User set Balance_Money=Balance_Money-" + this.money + ",Freez_Money=Freez_Money+" + this.money + " where User_Id=" + this.user_Id + " AND Balance_Money>=" + this.money, 1)); return pays; } return null; }
上面的函数在交易时起到暂时冻结资金的作用,小编发现上面函数中SQL查询语句是由字符串拼接而成的。其中Description字段疑似没有过滤,直接带入SQL查询语句。由于金额数量字段在Description字段之后,成功利用的攻击者甚至可以通过篡改插入到freez_details的冻结资金明细记录中的金额数量从而牟利。
更有意思的是小编从代码中找到了一个未曾使用的加密类。函数使用单重DES加密,而密钥则是一个可见字符串。
public static final String encrypt(String password) { try { return byte2hex(encrypt(password.getBytes(), "jDlpeesc".getBytes())); } catch (Exception localException) { } return null; }
这当然不是重点,被用到的加密函数其实就是单层md5加密,将userid(不用用户名,是id)和明文密码混合后取md5存入用户表,难道这个也是“银行级别安保”?经过验证,User.bson表中的用户密码加密确实为单次MD5加密!据小编所知,印度最大银行SBI的网银账户加密为自定义加密+3DES,这才是“银行级别安保”。当然了,按照惯例这个也不是重点,重点是顺着这个未使用的加密类我们发现了这个:
public void getsafemima() { try { String userid = this.request.getParameter("userid"); String photo = this.request.getParameter("photo"); String filename = EncryptionPhoto.encrypt(photo); this.response.getWriter().write("<a href='http://img.artww.com/" + userid + "/" + photo + filename + "' target='_blank'>http://img.artww.com/" + userid + "/" + photo + filename + "</a>"); } catch (Exception ex) { try { this.response.getWriter().write("获取失败" + ex.toString()); } catch (Exception localException1) { } } }
大家摸出点门道来了吧,这个artww.com网站是做古玩的,所属公司是上海艺粹文化传播有限公司,网站页脚时间为2011年,而chbtc的公司名为十星宝,2012年开始做电子商务的,上海艺粹疑似并不是十星宝的客户或者存在任何关联。莫非。。。黑进去扒别人代码的事确实常有,但是这里小编胆小,不敢得罪人,也就不加以评论了。
11月26日chbtc发布了一篇公告“我们叫做中国比特币,一个被cctv世界周刊唯一播放的国内平台”,小编在这里只希望在做好用户体验的同时,在工作之余提高一下员工的安全意识,对客户负责,更对自己负责。顺便提一句,未授权使用别人的代码尤其是已经声明过版权的代码是侵犯版权哦!
什么人在玩比特币
新闻报道说温州商人大炒比特币,看了数据以后,小编觉得不敢苟同。
小编以部分关键字进行文本搜索,发现很多有意思的账户,例如:
wlheike@163.com,放到Google上面 搜到很多whois信息,例如0359sy.com,这可是个黄色网站。
h3ewhack@163.com,这位大哥应该是做运维的,从Google上面看到已经因为CSDN数据库事件被“泄露”一回了,这次又躺枪了。
还有一些有意思的用户名,例如:heikeji,heikeisn,heike9999,fenliuhack,hackamark,hackerpayne,hackeri,hackzj,hackeqin,nhhack,hackliang,dragonhackking,hackor-yan,lgphacker,hackjay。。。
小编在这两万多个账户中,按随机25人抽样3次,通过搜索数据库中个人信息得到职业分布比例如下:
抽样1:
努力奋斗的小黑:4人
黑色、黄色、赌博产业链:8人
在校学生:5人
普通网民:1
未知:7人
抽样2:
小黑:7人
黑色、黄色产业:12人
炒币商人:2人
不明身份:4人
抽样3:
小黑:1人
黑色、黄色产业链:9人
在校学生:9人
企业高层:1人
炒币商人:1人
食堂大妈:1人
未知:3人
小编当然知道统计并不科学,但是各个职业所占大概比例还是很有参考性的,比特币到底是不是如媒体所讲被温州商人炒热的呢?相信大家有目共睹,几千万的交易额相信有很大部分是黄色、赌博和地下产业链的资金流动。各位小黑们、黑老板们,要洗白指望比特币可不行,入手有风险,洗白请谨慎,这份数据库里面可是有电话号码和银行账号的。
小编看比特币的合法性
虽然世界很多国家都已经承认或者默许了比特币的合法性,包括中国在内也是处于半默许的状态。
但是真正开放比特币,国内的经济条件并不成熟。小编甚至并不认为比特币是电子货币时代的来临,相反的是,小编认为如果开放比特币可能导致的长期后果就是国内大量资金外流。
尽管比特币有很多其他任何货币和交易平台无法比拟的优越性,但是这就好比一把利剑,正义的人拿来用在光明,邪恶拿来用于黑暗。中国的金融市场与西方发达国家相比还有一定差距,如果开放这个市场,可能会导致货币外流监管半失控。当然了,如果政府监管了这个市场,对于普通投资者的利弊暂且不说,对于黑色、黄色、赌博等地下产业人士来说,投资比特币洗白反而可能适得其反。
小编我只是一介渣画手,并不是专业码农或者金融学家,如果说的不妥还请大家多多包涵~
在这里小编将在习科论坛出售数据库的哥们的资料贴出来:
Vegas,temp200808008[at]hotmail,chaus-koyani68[at]yandex.ru(old),80.12.242.68,209.85.219.52
最后小编在这里感谢习科北美公司 Silic Corporation 的所有同事的技术支持,同时也感谢 北京知道创宇 的朋友以及余弦,非常感谢他们提供数据支持~~~
留言评论(旧系统):