关于拖库和撞库的思考与对策

拖库是指黑客盗取了网站的数据库。撞库是指黑客用拖库获得的用户名和密码在其它网站批量尝试登陆,进而盗取更有价值的东西。由于一些用户在多个网站用相同的用户名和密码,所以撞库是有一定成功率的。现在稍微有点责任感的网站都不会将密码明文保存在数据库中,起码会做一次MD5。要想撞库,必须得知道密码的明文,也就是用户真正输入的密码。我们知道MD5算法是不可逆的,黑客是怎么弄到密码明文的呢?最常用的办法就是MD5字典。

MD5字典是什么?
其实就是提前将一些比较简单的密码(比如10位以内的纯数字)做MD5运算,将结果保存下来,破译密码的时候直接查就行了。比如字符串“123”的MD5值是“202cb962ac59075b964b07152d234b70”,黑客在拖来的数据库中看到某位用户的密码是“202cb962ac59075b964b07152d234b70”,通过字典一查就知道密码明文是“123”了。当然黑客用字典破译密码不会人工一个一个的查,而是用程序批量查询的。

所有密码都能用MD5字典破译吗?
理论上可以,但实际上只能破解比较简单的密码。下面我们看看不同复杂度密码对应的MD5字典有多大。

1.10位以内纯数字
共10^1+10^2+10^3+10^4+10^5+10^6+10^7+10^8+10^9+10^10=10(1-10^10)/(1-10)=11,111,111,110条≈110亿条
保存每条记录至少需要42字节(密码10字节+MD5值32字节),则存储该MD5字典至少需要约467GB空间。

2.10位以内的数字+小写字母
共36(1-36^10)/(1-36)=3,760,620,109,779,060条≈3760万亿条
保存每条记录至少需要42字节(密码10字节+MD5值32字节),则存储该MD5字典至少需要约157946TB空间。

通过以上两个例子可以看到,如果用户的密码是10位以上的数字和字母组合,通过MD5字典破解的概率几乎为零。但并不是所有用户的密码都足够强,黑客拖库后,使用弱密码的账户很容易就被查到明文了。对于使用弱密码的账户,被拖库的网站就无能为力了吗?不是的。办法也很简单,只要在MD5的时候加一个稍微复杂点的盐(比如GUID/UUID),就能极大的提高用户密码的安全性。
加盐后的明文=明文+盐;
密文=MD5(加盐后的明文);
以GUID/UUID作为盐为例,哪怕明文再简单,加一个32位的盐,加盐后的明文也在32位以上了,通过MD5字典来破解是不现实的。

如果所有网站都没有加盐,黑客只需建一套MD5字典,所有网站都能通用。如果所有的网站都加了盐,退一万步讲,哪怕盐也被黑客盗了,也不能用通用的MD5字典,得为每一个拖库的网站建一个字典。这样成本会高很多,如果动力不够,黑客就放弃了。

防止拖库和撞库的对策有很多,我这里只是分析了其中的一点,并提出了相应的对策。办法很简单,相信很多网站也加了盐,或做了更复杂的操作,但没有加盐的网站也很多,要不然就不会经常发生撞库的事了。

尽全力保护用户的信息安全是每个网站应尽的义务,这样才对得起用户对你的信任。一个小小的改变可以让用户的密码更加安全,希望能引起所有网站的重视。

时间: 2024-08-07 08:38:36

关于拖库和撞库的思考与对策的相关文章

机器人的洪流:刷库、撞库那些事儿

原文链接 机器人的洪流:刷库.撞库那些事儿 目明@阿里安全 一. 那些信息泄露的事 面对社会上层出不穷的诈骗新闻,我们可以发现骗子们诈骗成功的一个关键是:骗子们知道你叫什么.住在哪里.买了什么东西.花了多少钱.这些信息骗子们是从哪里得来的呢? 最近某票务网站就出现了这么一例case,因为骗子们知道其在该网站上的订单信息.电话和住址,因此认为骗子就是真实的该网站的客服人员,从而被引导到转款等流程中. 二. 他们怎么知道我们的个人信息   大多数人看到这些短信的第一反应是:我的信息被平台商卖给了骗子

什么是拖库,撞库?

什么是撞库? 撞库是一个看起来很专业,但实际理解起来却很简单的名词.它其实就是黑客无聊的"恶作剧".黑客首先会通过收集互联网已泄露的用户+密码信息,生成对应的字典表,然后再用字典中罗列的用户和密码,尝试批量登陆其他网站,这样,一旦用户为了省事,在多个网站设置了同样的用户名和密码的话,黑客很容易就会通过字典中已有的信息,登录到这些网站,从而获得用户的相关信息,如:手机号码.身份证号码.家庭住址,支付宝及网银信息等.这些信息泄露后,不仅会给用户和精神和经济带来巨大损失,同时也会给相关网站带

支持smtp/imap smtp/pop3的撞库python撞库脚本

# coding=gb2312 # 确保python支持中文注释 # 输入邮件地址, 口令和POP3服务器地址: import poplib import smtplib import sys def checksmtppassword(smtp_server,username,password): try: server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25 这里解析不了域名就会抛出异常登录失败 #server.set_debuglev

网站被黑客扫描撞库该怎么应对防范?

在安全领域向来是先知道如何攻,其次才是防. 在介绍如何防范网站被黑客扫描撞库之前,先简单介绍一下什么是撞库:撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对于的字典表,尝试批量登录其他网站后,得到一系列可以登录的用户.因为很多用户在不同网站使用的账号密码大多是相同的,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网站. 那么碰见撞库之后,我们如何防护呢?为此我们咨询了网易云易盾安全专家:刘庆.根据他的描述:撞库一般有以下几种形式,每种形式有一些不同的处置策略.但是实际情况是,被攻击的

账号加密与撞库解密【转】

什么是拖库与撞库? 拖库是指黑客盗取了网站的数据库.撞库是指黑客用拖库获得的用户名和密码在其它网站批量尝试登陆,进而盗取更有价值的东西.由于一些用户在多个网站用相同的用户名和密码,所以撞库是有一定成功率的.现在稍微有点责任感的网站都不会将密码明文保存在数据库中,起码会做一次MD5.要想撞库,必须得知道密码的明文,也就是用户真正输入的密码.我们知道MD5算法是不可逆的,黑客是怎么弄到密码明文的呢?最常用的办法就是MD5字典. MD5字典是什么? 其实就是提前将一些比较简单的密码(比如10位以内的纯

htpwdScan — 一个简单的HTTP暴力破解、撞库攻击脚本

李姐姐之前跟我们分享了子域名枚举工具subDomainBrute<subDomainsBrute — 改进渗透测试时暴力枚举子域名的python脚本>,这回带给我们htpwdScan htpwdScan 是一个简单的HTTP暴力破解.撞库攻击脚本: 1. 支持批量校验并导入HTTP代理,低频撞库可以成功攻击大部分网站,绕过大部分防御策略和waf2. 支持直接导入互联网上泄露的社工库,发起撞库攻击3. 支持导入超大字典4. 其他细微功能:随机X-Forwarded-For.随机SessionID

浅谈撞库防御策略

2014年12306遭遇撞库攻击,13万数据泄露:2015年乌云网上爆出网易邮箱过亿用户数据由于撞库泄露:数据泄露愈演愈烈,撞库登录成为网站的一大安全威胁, 今天小编就和大家探讨一下如何才能够有效的防止撞库攻击.俗语知己知彼,百战不殆,小编在网上找了个撞库教程整理给大家看看,了解黑客是如何撞库的. 首先找到一个目标网站,随便输入一组用户名和密码,测试其验证码是否可以被绕过. 密码是明文的,提交了正确的验证码,repeater一下 回显是账号和密码错误,再repeater一下,还是显示账号和密码错

撞库攻击:一场需要用户参与的持久战

一,背景: 用户数据泄露一直是如今互联网世界的一个焦点,从最近的12306数据泄露事件,京东撞库抹黑事件,到之前的CSDN,如家用户数据的泄露,服务商和黑客之间在用户数据这个舞台上一直在进行着旷日持久的攻防战. 对于大多数用户而言,撞库可能是一个很专业的名词,但是理解起来却比较简单,撞库是黑客无聊的"恶作剧",黑客通过收集互联网已泄露的用户+密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登陆的用户. 以京东之前的撞库举例,首先京东的数据库并没有泄漏.黑客只不过通过&

什么是撞库,如何预防撞库攻击?

什么是撞库攻击?撞库对用户可能有哪些危害?近期发生多起撞库事件,让越来越多的人关注撞库漏洞和撞库攻击.尤其对专注业务发展的公司来说,如何防止撞库威胁到信息安全问题不容小觑. 撞库攻击没有那么高深,举个例子来说,假设我有一个XX邮箱的账号,用户名是[email protected],密码是[email protected](很复杂,很安全).同时因为懒癌晚期的缘故,我还用这个账号注册了新浪微博.携程.淘宝.微信等等,都采用邮箱注册并且是同一个密码(这种情况很常见,因为懒得记不同的账号). 于是某天