本文是对于学习SQLMAP参数的使用的一些笔记,不足之处很多会慢慢改进~
SQLMAP是一款开源的、用于SQL注入漏洞检测及利用的工具,它会检测动态页面中get/post参数、cookie、http头,进行数据榨取、文件系统访问和操作系统命令执行,另外还可以进行Xss漏洞检测。关于其更多的描述这里就不多说了,直接入正题,下面从参数的每个大部分的分类开始讲。
在Kali中已默认安装,其他Linux系统的安装要先安装git再通过git到GitHub上下载安装:
apt-get install git
git clone https://github.com/sqlmapproject/sqlmap.git sqlmap
升级:
sqlmap --update
Options:
-h或-hh:查看sqlmap的参数信息,双h显示全部
-v:显示详细的信息,有1-6级,默认为1
--version:查看版本信息Target:
-d:直接连接数据库服务器,作为数据库客户端使用
-u:后面跟URL地址,最好用双引号括起来,一定要存在变量名称
-l:logfile,将Burpsuite或WEbScarab代理记录的log日志文件提交上来
-x:sitemapurl,将站点地图sitemap文件提交上来
-m:将有多个URL的文件提交上来进行扫描
-r:提交HTTP request信息的文件
-g:用Google去搜索
-c:提交配置文件
GET方法:
开始先不使用DVWA来演示,因为DVWA中需要登录要用到cookie等的信息会比较复杂,刚开始先简单地以Mutillidae中的SQL注入为例:sqlmap -u “http://10.10.10.137/mutillidae/index.php?page=user-info.php&username=a&password=hhh&user-info-php-submit-button=View+Account+Details” -p username -f
-p参数只对指定的参数进行注入,在上述命令中指定了对username参数进行注入
-f参数查看指纹信息
查询的结果会保存在log文件中,位于一个root下的隐藏目录.sqlmap,可以进入查看相应的信息:
cd .sqlmap
--users:查看当前数据库所有用户
将注入命令的-f参数改为--users参数,因为已经查询确定过有注入点所以后面的执行速度会很快:
--banner:查看数据库版本信息
--dbs:查看目标数据库系统的所有库
--schema:查看元数据库,查看到的信息会很多,下面只是其中一个表
-a:all,所有数据都查找
-d参数,直接连接数据库服务器,作为数据库客户端使用而不是通过SQL注入漏洞查询进行,查询速度较快,前提是已知数据库当前的用户名及其密码、IP、端口(3306端口为mysql)和数据库名称(dvwa):
sqlmap -d “mysql://user:password@10.10.10.137:3306/dvwa” -f --users
-m参数,将有多个URL的文件提交上来进行扫描:
sqlmap -m urllist.txt --users
-g参数,扫描Google搜索结果:
sqlmap -g “inurl:\”.php?id=1\””
POST方法:
简单判断POST方法的方法,输入的参数内容提交后没有出现在URL中,而GET方法中会出现。使用http request文件,可通过Burpsuite抓取:
sqlmap -r requset.txt
下面以Mutillidae中注入的login为例,启动Burpsuite来截获提交的POST方法:
用gedit保存而最好不用vi,因为格式会改变从而命令执行会出现错误:
使用Burpsuite的log文件:
在Options>Misc>Logging<