绕过

空格

  • 括号绕过,括号包裹子查询,括号的两端可以没有空格
  • 注释和一些特殊符号的绕过:%20 %09 %0a %0b %0c %0d %a0 %00 /**/ /*!*/

注释

  • 闭合绕过,例如?id=1' union select database()||'1

引号

  • 宽字节注入,\的url编码是%5c,当编码为gbk时,%df%5c将被变成汉字‘運’,导致转义符\失效

等号

  • like,like字句中百分比(%)通配符允许匹配任何字符串的零个或多个字符。下划线 _ 通配符允许匹配任何单个字符。匹配成功则返回1,反之返回0。
  • REGEXP,正则匹配
  • rlike,模糊匹配

逗号

  • from x for y,截取从x开始第y个字符,代替一些被过滤逗号后用不了的函数

通用绕过

  • char(),把ascii码转换成对应字符
  • 十六进制绕过
  • Unicode

sqlmap的一些其他功能

使用认证

  • --auth-type=http认证方式
  • --auth-file=http认证密钥文件
  • --auth-cred=http认证信息 admin:123

csrf

  • --csrf-token=存放token的变量
  • --csrf-url=获取token的url
  • --csrf-method=访问获取token的页面所用的方法

文件

  • --file-read=读取目标文件路径
  • --file-write=从本地的文件写入,本地文件路径
  • --file-dest=写入目标的绝对文件路径

命令执行

  • --os-cmd=执行的命令
  • --os-shell 启动一个shell

windows注册表

  • --reg-read 读取一个键值
  • --reg-add 写入一个键值
  • --reg-del 删除一个键值
  • --reg-key=选项指定 Windows 注册表项路径
  • --reg-value=提供注册表项的名称
  • --reg-data=提供注册表键值数据
  • --reg-type=选项指定注册表键值的类型

tamper

image-1678089876602

fuzz

load_file
length 
Length
+
handler
like
LiKe
select
SeleCT 
sleep
SLEEp
database
DATABASe
delete
having
or
oR
as
As
-~
BENCHMARK
limit
LimIt
left
Left
select
SELECT
insert
insERT
INSERT
right
#
--+
INFORMATION
--
;
!
%
+
xor
<>
(
>
<
)
.
^
=
AND
ANd
BY
By
CAST
COLUMN
COlumn
COUNT
Count
CREATE
END
case
'1'='1
when
admin'
"
length 
+
REVERSE

ascii
ASSIC
ASSic
select 
database
left
right
union
UNIon
UNION
"
&
&&
||
oorr
\
/
//
//*
*/*
/**/
anandd
GROUP
HAVING
IF
INTO
JOIN
LEAVE
LEFT
LEVEL
sleep
LIKE
NAMES
NEXT
NULL
OF
ON
|
infromation_schema
user
OR
ORDER
ORD
SCHEMA
SELECT
SET
TABLE
THEN
UNION
UPDATE
USER
USING
VALUE
VALUES
WHEN
WHERE
ADD
AND
prepare
set
update
delete
drop
inset
CAST
COLUMN
CONCAT
GROUP_CONCAT
group_concat
CREATE
DATABASE
DATABASES
alter
DELETE
DROP
floor
rand()
information_schema.tables
TABLE_SCHEMA
%df
concat_ws()
concat
LIMIT
ORD
ON
extractvalue
order 
CAST()
by
ORDER
OUTFILE
RENAME
REPLACE
SCHEMA
SELECT
SET
updatexml
SHOW
SQL
TABLE
THEN
TRUE
instr
benchmark
format
bin
substring
ord

UPDATE
VALUES
VARCHAR
VERSION
WHEN
WHERE
/*
`
  
,
users
%0a
%0A
%0b
mid
for
BEFORE
REGEXP
RLIKE
in
sys schemma
SEPARATOR
XOR
CURSOR
FLOOR
sys.schema_table_statistics_with_buffer
INFILE
count
%0c
from
%0d
%a0
=
@
else
%27
%23
%22
%20