我是靠谱客的博主 俏皮台灯,最近开发中收集的这篇文章主要介绍第十三章—手动漏洞挖掘(九)—— Sqlmap自动注入(四),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Sqlmap自动注入(四)

1.Enumeration参数

Enumeration—枚举

#查询当前数据库的用户
--current-user
--current-db
--hostname
#查询数据库管理系统的所有用户账号
--users
#查数据库账号在数据库管理系统里的特权,指定用户名,就加-U username,不指定就查询所有的用户的特权
--privileges -U username
#查询数据库中用户角色
--roles
--dbs
#查表。排除系统库中相关内容加上--exclude-sysdbs;也可以指定查那个库的表,eg:-D 数据库名
--tables
#根据查到的表、库的内容,查列。eg:-D 数据库名 -T 表名 --column;指定某一列查询,再加上-C 列名
--column
#查列中有几条数据
--count
#查列的具体数据
#查询数据库中iformation-schema元数据获取信息,前提是当前数据库用户是可以读取information-schema中内容
--schema --batch --exclude-sysdbs
#dump数据
--dump #-C指定列、-T指定表,-D指定数据库,--start,--stop查第几条到第几条的数据记录
--dump-all #查询所有,可以加上--exclude-sysdbs排除系统库
--sql-query "select * from users" #指定一条sql语句查询

2.Brute Force参数

Brute Force——暴力破解
mysql<5.0,没有information_schema库。
mysql》=5.0,但无权读取information_schema库。
微软的access数据库,默认无权读取MSysObjects系统表。

#暴力破解表的名称
--common-tables
#暴力破解列
--common-columns

3.Udf Injection参数

Udf Injection——用户自定义的函数
向服务器上传文件或执行系统命令、读取文件等这类操作的时候,sqlmap默认把数据库管理系统、内建库文件进行编译后上传到数据库服务器,然后在数据库服务器上基于编译的库进行自定义函数的编写,即UDF,利用这些自定义函数就可以实现对目标系统的特殊系统操作,比如:执行操作系统命令,访问操作系统文件等。
如果是windows系统,上传的就是DLL文件;如果是linux系统,上传的就是shared object文件。

--udf-inject

4.File System 文件系统的访问

文件系统的访问。

#读
--file-read="/etc/passwd" #读取目标系统上的/etc/passwd文件内容,读取到的内容都在本地/sqlmap/output/目录下
#写
--file-write="shell.php" --file-dest"/tmp/shell.php"

5.OS 操作系统的访问

如果是工作linux系统上,并且是mysql、postgresql数据库,sqlmap在进行sql注入的时候,如果想通过sql注入来实现操作系统命令的执行,sqlmap的做法就是根据UDF上传一个编译好的动态链接库,基于这个动态链接库生成sys_exec()、sys_eval()两个UDF.。
如果在windows系统装的是mssql数据库,他就不会在单独写上面两个UDF,而是利用微软的sqlserver里最经典的xp_cmdshell存储过程漏洞,基于这个漏洞执行操作系统命令。在2005版本以后,sp_cmdshell存储过程默认被禁用,在之前的版本都可以利用。没有的话,sqlmap会在目标服务器上重建利用。

--os-cmd 命令
--os-shell #获取shell,直接通过shell去执行更进一步的命令
--sql-shell

6.Windows Registory

对windows注册表进行操作。

#读取注册表键值
--reg-read
#添加注册表键值
--reg-add
#删除注册表键值
--reg-del
#具体操作时,可以通过以下参数指定
--reg-key #指定键的名称
--reg-value #指定键值的赋值
--reg-data #指定数据类型
--reg-type #指定键值的type

eg:sqlmap -u “http://1.1.1.1/a.aspx?id=1” --reg-add --reg-key=“HKEY_LOCAL_MACHINESOFTEAREsqlmap” --reg-calue=Test --reg-type=REG_SZ --reg-data=1

7.General

一般性的参数

#sqlite会话文件保存位置,我们在执行sqlmap时,默认保存在./sqlmap/output的文件夹里,如果想修改存放到其他位置,就可以用该参数
-s
#记录流量文件保存位置
-t
#强制字符编码
--charset
#--charset=GBK
#从起始位置爬站深度,给一个起始的url,再给一个爬网的深度爬几层,它会根据深度的层数去爬网
--crawl
--batch-crawl=3
#我们保存下来的额数据会被csv格式进行保存,dump下的数据默认存于“,”分割的csv文件中,可以使用该参数,指定其他分隔符。eg:--csv-del=";"
--csv-del
#如果你有数据库的账号密码,可以用该参数去指定数据库账号来直接查取数据库中内容
--dbms-cred
#清空session,下次再去执行同样的sqlmap注入命令会重新向服务器发各种注入的指令,然后根据返回的结果再次缓存session的信息
--flush-session
#使用该参数,让sqlmap知道在访问的是https的网站
--force-ssl
#忽略session查询结果,使用该参数,sqlmap再使用同样的指令,不会从本地直接查,而是做一个重新的查询
--fresh-queries
#dump非ASCII字符内容时,下载之前将其编码为16进制形式,收到后解码还原
--hex
#指定输出数据存放目录
--output-dir
#分析和现实数据库目标服务器现实出来的内建报错信息
--parse-errors
#将执行的命令保存成配置文件,下次执行时可以直接调用配置文件
--save

8.Miscellaneous

#告诉sqlmap对于不同的问题要回答为什么结果。eg:--answers="extending=N" --batch
--answer
#检查WAF/IPS/IDS,检测目标系统使用了这些防护机制
--check-waf
#绕过WAF/IPS/IDS的有效方法,尤其对ASP/IIS和ASP.NET/IIS比较有效
--hpp
#彻底的WAF/IPS/IDS检查,跟--check-waf相比较检测的更加彻底
--identify-waf
#模拟智能手机设备,sqlmap把user-agent改成手机的user-agent,从而让目标服务器认为他是一个来自手机端的请求
--mobile
#清除output文件
--purge-output
#当有大量检测目标时,只选择基于错误的sql注入漏洞点
--smart
#向导模式,利用参数可以按照提示做基本sql注入漏命令的输入
--wizard

最后

以上就是俏皮台灯为你收集整理的第十三章—手动漏洞挖掘(九)—— Sqlmap自动注入(四)的全部内容,希望文章能够帮你解决第十三章—手动漏洞挖掘(九)—— Sqlmap自动注入(四)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部