SQLmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞。
目前支持的数据库是MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Acess,IBM DB2,SQLLite,Firebird,Sybase和SAP MaxDB……
SQLmap采用几种独特的SQL注入技术,分别是盲推理SQL注入,UNION查询SQL注入,对查询和盲注。
其广泛的功能和选项包括数据库指纹,枚举,数据库提取,访问目标文件系统,并在获取完全操作权限时实行任意命令。
1、检查注入并查询相关信息
sqlmap -u "url"
2、查询数据库
sqlmap -u "url" --dbs
3、根据库名查表名
sqlmap -u "url" -D 库名 --tables
4、根据表明查字段
sqlmap -u "url" -D 库名 -T 表名 --columns
5、根据字段查信息
sqlmap -u "url" -D 库名 -T 表名 -C 字段 --dump
首先,使用原始方法 and 1=1、and 1=2对页面进行sql注入判断:
当输入 and 1=1时,页面正常,and 1=2时,页面报错,基本断定存在sql注入。
再使用sqlmap进行渗透:
注入类型为“boolean-based blind(布尔型盲注类型)”,即可根据返回页面判断条件真假;
数据库是MySQL,版本是5.0.12及以上;
平台是Windows,后台是 php(5.4.45) + apache(2.4.23)
sqlmap -u “url” --dbs
查询结果:
结果显示:
该后台总共有3个数据库,其中information_schema表是MySQL的配置库,且不与理会,只需要对另外两个数据库进行探测。
sqlmap -u “url” -D 库名 --tables
查询结果:
结果显示:
test库为空;
maoshe库中有4张表,继续对其中的admin表进行查询。
sqlmap -u “url” -D 库名 -T 表名 --columns
查询结果:
结果显示:
admin表中有3个字段:id、username、password
继续根据字段查询用户名和密码
sqlmap -u “url” -D 库名 -T 表名 -C 字段 --dump
查询结果
继续查password字段中的信息
查询结果:
结果显示:用户名为 admin,密码为 hellohack。
至此,注入结束,拿到账户信息。
学习整理,若有问题请指出