sqlmap的使用_SQL必知必会

(3) 2024-07-11 21:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
sqlmap的使用_SQL必知必会,希望能够帮助你!!!。

1. 常见参数

参数 意义
-v 3 输出复杂程度,可选0-6
-u 后面跟需测试的url
-r 后面跟http请求所在的文件路径
–data=DATA post注入所发送的字符串
–cookie=COOKIE 添加一个cookie头
–cookie-urlencode 对cookie头进行url编码
–random-agent 随机agent头
–referer=REFERER 指定referer头
–proxy=PROXY 代理
–proxy-cred admin:123 代理的凭据
-o 打开所有优化功能
–hpp 使用http参数污染方法
-p id 指定测试的参数为id
–tamper=xxx 使用xxx脚本对payload进行混淆
–smart
–dbs 枚举所有数据库
–tables 枚举所有表
–columns 枚举所有的列
–schema 枚举DBMS schema
–count 输出当前所查询数据的行数
–dump dump当前数据库的所有数据
–dump-all dump所有数据库的所有数据
-D 选择某个数据库
-T 选择某张表
-C 选择某个列
–sql-shell 返回一个可执行sql语句的shell
–os-shell 返回一个cmd的shell

2. 注入

2.1 get型

sqlmap -u 'http://site.com/index.php?id=Price_ASC' --dbs --random-agent -v 3 

2.2 post型

sqlmap -u 'http://xxx.xxx.com/Login.asp' --data "n=1&p=1" --random-agent //post注入 

2.3 获取数据库

sqlmap.py -u "http://www.xxx.com" --dbs 

2.4 获取指定数据库的表

sqlmap -u "http://www.xxx.com" -D 数据库名--tables 

2.5 获取指定表的列

sqlmap -u "http://www.xxx.com" -D 数据库名-T 表名 --columns 

2.6 获取指定列的字段值

sqlmap -u "http://www.xxx.com" -D 数据库名-T 表名 -C 字段名 --dump 

2.7 带cookie参数的注入

sqlmap -u "http://test.cs.rm/message_content.jsp?nid=" -p "nid" --cookie "JSESSIONID=EC114ABC4B90D3CB1FC79874ABB5E9C6"//cookie注入 

2.8 对http请求包进行sql注入探测

sqlmap -r "包文件路径" -p 注入点 

2.9 使用tamper

sqlmap -u "http://www.xxx.com" --tamper='apostrophemask' 

2.10 其他用法

sqlmap -u 注入点 --current-user # /*获取当前用户名称 sqlmap -u 注入点 --current-db # /*获取当前数据库名称 sqlmap -u 注入点 --is-dba #是否是数据库管理员 sqlmap -u 注入点 --passwords #数据库用户密码 sqlmap -u 注入点 --current-user # /*获取当前用户名称 

3. tamper

sqlmap --list-tampers 

sqlmap的使用_SQL必知必会_https://bianchenghao6.com/blog__第1张

脚本 作用
apostrophemask 单引号url编码
apostrophenullencode 单引号unicode编码
base64encode 将payload进行base64编码
between 将大于等于号用between替代
binary 在可能的地方注入binary,将字符串转化为16进制格式,一般用在order by注入中
chardoubleencode 双重url编码所有payload
charencode url编码所有payload
commalesslimit 将逗号用offset代替
commalessmid 将mid函数中的逗号用from for代替
commentbeforeparentheses 在括号前加内联注释符/**/
concat2concatws 将concat转化为concatws
equaltolike 等号转化为like
escapequotes 在单引号和双引号前面加上两个反斜杠
greatest 用greatest代替大于符号
halfversionedmorekeywords 关键之前加注释符号,适用于mysql<5.1
hex2char 将16进制显示的数据转化为用CONCAT(CHAR(),…)来显示
htmlencode html编码所有非字母和数字的字符
ifnull2casewhenisnull 改变ifnull语句的写法
ifnull2ifisnull 替换ifnull为if(isnull(A))
informationschemacomment 标示符后添加注释
least 替换大于号为least
lowercase 全部替换为小写值
luanginx 用于绕过Lua nginx WAF,Lua nginx WAF不支持处理超过100个参数
modsecurityversioned 空格替换为查询版本的注释ƒ
modsecurityzeroversioned 添加完整的查询版本的注释
multiplespaces 添加多个空格
overlongutf8 将所有字符转义为utf8
overlongutf8more 以指定的payload转换所有字符
percentage 每个字符前添加%
plus2concat 将加号替换为concat函数
plus2fnconcat 将加号替换为ODBC函数{fnCONCAT()}
randomcase 字符大小写随机替换
randomcomments /**/分割关键字
sp_password 追加sp_password字符串
space2comment 空格替换为/**/
space2dash 空格替换为-加随机字符
space2hash 空格替换为#加随机字符
space2morecomment 空格替换为/_/
space2morehash 空格替换为#加随机字符及换行符
space2mssqlblank 空格替换为其他空符号
space2mssqlhash 空格替换为%23%0A
space2mysqlblank 空格替换为其他空白符号
space2mysqldash 空格替换为-%0A
space2plus 空格替换为加号
space2randomblank 空格替换为备选字符集中的随机字符
substring2leftright PostgreSQL中将substring函数用left right函数代替
symbliclogical AND和OR替换为&&和
unionalltounion union all select 替换为union select
unmagicquotes 宽字符绕过GPC
uppercase 全部替换为大写值
varnish 添加HTTP头
versionedkeywords 用注释封装每个非函数的关键字
versionedmorekewords 使用注释绕过
xforwardedfor 添加伪造的HTTP头

参考文章

sqlmap tamper详解

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复