SQL注入之sqlmap进阶
上一篇我们对sqlmap进行简单的介绍,并介绍了一些·sqlmap的基础用法,这篇让我们来更深入的了解一下sqlmap,了解一下它的强大功能。
探测等级
参数为 --level
在sqlmap中一共有五个探测等级,默认等级为一。
等级为一时会测试get和post的数据。
等级为二时会测试HTTP头的cookie注入。
等级为三时会测试HTTP的user-agent、referer头、xff头等的注入。
等级越高,检测的越多,运行也越慢,所以我们要看情况来选定等级。
sqlmap支持的注入模式
1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4、联合查询注入,可以使用union的情况下的注入。
5、堆查询注入,可以同时执行多条语句的执行时的注入。
sqlmap支持的数据库
MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase,SAP MaxDB
HTTP Referer头
sqlmap可以在请求中伪HTTP的Referer头,当--level参数大于等于三时,会尝试进行refer注入,可以用refer命令来欺骗,命令为 --referer
--sql-shell
该命令可以运行指定的SQL语句,我们可以自定义SQL语句来实现想要的功能。
--os-cmd 和 --os-shell
可以用来运行任意的操作系统的命令。
--file -read
这个命令用来读取执行文件,当用户有足够的权限使用特定的函数时,便可以读取数据库服务器的文件。
--file-write --file-dest
这个命令用来将本地文件写入到服务器中