漏洞利用:身份证后6位数爆破的一些小trick && 撞库

漏洞利用:身份证后6位数爆破的一些小trick && 撞库

这是上一篇文章 记一次联通校园网web认证页面逻辑漏洞挖掘过程  的下半部分,由于在我挖到认证页面的逻辑漏洞时,恰好在我们专业每个班群都发了一份 学生-导师分配表。我乍一看这信息量简直巨大,虽然没有把大家的身份证号给泄露出来,但是却把大家的出生日期都给出来了。所以把漏洞组合利用,就更加有意思了。

18位身份证号码各位的含义:

1-2位省、自治区、直辖市代码;
3-4位地级市、盟、自治州代码;
5-6位县、县级市、区代码;
7-14位出生年月日,比如19670401代表1967年4月1日;
15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数;
18位为校验码,0-9和X。作为尾号的校验码,是由把前十七位数字带入统一的公式计算出来的,计算的结果是0-10,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10。
举例:
130503 19670401 0012这个身份证号的含义: 13为河北,05为邢台,03为桥西区,出生日期为1967年4月1日,顺序号为001,2为校验码。                                                                           来源 — 百度知道


虽然可以利用那个逻辑漏洞对身份证后六位进行爆破,若是对纯6位数字爆破,即10^6种可能,但是还要考虑到身份证最后一位是x的情况,实际上需要爆破的次数是1.1×10^6。说的更直观一些纯六位数本来是1000000种可能,但是存在x,还要增加10^5,即多了100000种,无论从时间上还是空间上,对爆破的成本来说都是巨大的。

其实上面这种思路是不对的,也是我一开始想到的。但要考虑到身份证号的特殊性。仔细思考一下,身份证后六位的前两位对应的是第13和14位,也就是我们出身的那个月的号数。而一个月最多是到31号,从排列组合的角度来看,那么第一位是有4种可能的,即0,1,3,4,但第二位还是有10中可能。那么总的可能应该是4.4×10^5。小了一个数量级,对爆破的难度是减小了很多的。

但如果在有信息收集的前提下,比如我们知道了那个人的出生日期。即我们知道他出生的号数,此时需要爆破的可能性就降低到了1.1×10^4。

但如果我们还知道他的性别。这也是很多人可能不知道,甚至会忽略掉的一点。后六位中倒数第二位,也就是身份证中的第17位,是用来判断性别的。女的是偶数,男的是奇数。 即可能性又减少了一半。现在需要爆破的可能性就降低到了5.5×10^3,即只有5500种可能。

几千次的爆破,对于脚本或者工具而言,简直就是轻而易举了。例如我用burp的Intruder来跑完这个字典,只需要不到两分钟的时间,非常高效。


撞库

撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户。很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网址,这就可以理解为撞库攻击。 [1]
2014年12月25日,12306网站用户信息在互联网上疯传。对此,12306官方网站称,网上泄露的用户信息系经其他网站或渠道流出。据悉,此次泄露的用户数据不少于131,653条。该批数据基本确认为黑客通过“撞库攻击”所获得。

提及“撞库”,就不能不说“脱库”和“洗库”。
在黑客术语里面,”脱库“是指黑客入侵有价值的网络站点,把注册用户的资料数据库全部盗走的行为,因为谐音,也经常被称作“脱裤”,360的库带计划,奖励提交漏洞的白帽子,也是因此而得名。在取得大量的用户数据之后,黑客会通过一系列的技术手段和黑色产业链将有价值的用户数据变现,这通常也被称作“洗库”。最后黑客将得到的数据在其它网站上进行尝试登陆,叫做”撞库“,因为很多用户喜欢使用统一的用户名密码,”撞库“也可以使黑客收获颇丰。
“撞库”是一种黑客攻击方式。黑客会收集在网络上已泄露的用户名、密码等信息,之后用技术手段前往一些网站逐个“试”着登录,最终“撞大运”地“试”出一些可以登录的用户名、密码。     来源 —百度百科

接着来说这个漏洞利用的过程。可能大多数人看到了也不以为意,只是一个出生日期而已,没什么大不了的。但是作为一个每天都在挖洞的渗透狗来说,简直是信息量巨大。

先吐槽一下。按理说,即便是学生-导师分配表,也不应该把出生日期和籍贯这些信息给泄露出来。所以当我看到这张Excel表时,不经意间就打开了我的Pycharm。

花了几分钟的时间写了十几行的py代码,对整张表进行了关键信息的提取,构造好sql语句,写入到了数据库中。

再对出生日期的后两位进行字符串截取,从而得到身份证号后六位中的前两位。

再配合之前的逻辑漏洞去爆破,就能很快拿到他的身份证后六位。

在10几秒内便爆破成功,比想象中的速度更快。现在已拿到了身份证后六位。

再拿去撞库,也就利用联通的漏洞拿到密码,去撞移动cdtu的数据库。因为学校联通,移动校园网默认的密码就是身份证后六位。

撞库成功!

zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。