-
我们打开第一关,发现上面写着:请输入id带着数值作为参数
-
由于第一关的标题已经给出提示了,这是一个get请求注入,于是我们在url后面加上id作为参数尝试一下
-
发现有数据显示了,是一个账号和密码
-
按照常规思路,我们第一步还是先判断是什么类型的注入,加单引号判断
-
经过尝试,最终结果是,单引号报错,双引号正常显示,and 1=1正常,and 1=2也正常
-
所以很容易就判断出是字符型注入,并且闭合方式是单引号闭合
-
接下来我们来判断查询列数,用 order by
-
经过判断,我们发现,等于4的时候报错,说明查询了3列
-
下一步,判断回显位
-
发现回显位是2和3,接下来我们开始破解数据库名
-
用database()函数来返回
-
得到当前所在数据库名是security
-
下一步来查询当前数据库下的所有表名
-
查询到该数据库下一共四个表
-
emails
-
referers
-
uagents
-
users
-
-
下一步我们去拿users表下面的列名
-
发现了好多列
-
id,username,password,ip,time,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password
-
太多了,我们就拿username password两个就好.
-
得到了想要的数据,但是只能一次显示一行,当然我们也可以通过别的方法让它们一次全部显示出来,加些条件就好,这里不做过多解释
-
至此,第一关over