sqli-labs 第一关到第五关通关
本文是基于docker搭建sqli-labs,不知道怎么搭建的话请看Linux安装docker和配置sqli-labs
Less-01
从题目的提示我们可以知道题目需要我们传递一个id的值,我们传递一个1进行尝试
可以看到显示了登录用户名和密码,接着我们对其进行判断是字符型注入还是数字型注入
经过尝试我们得到报错信息,可以得知这一题是字符型注入,使用单引号进行闭合,我们再进行对传递的参数后面的语句进行注释
这里使用的是–+进行注释,接着使用order by判断列数
经过尝试,得到列数为三列,接下来我们就可以使用联合查询进行判断显示的列数了得出显示的列数为第2和第3列,所以我们可以修改这两列得到我们想要得到的数据,这里就演示得到数据库名就好了,想要得到其他的数据请各位自行构造语句。
Less-02
进入第二关发现与第一关相似,都是传递一个id的参数,所以我们就直接尝试是否能找到它的报错信息,进行判断是字符型注入还是数字型注入由报错信息我们可以知道该题是数字型注入,不需要闭合,因此我们可以使用–+注释之后再使用order by语句进行列数的判断
得出列数为三列,到此步就可以像第一关一样,使用联合查询,然后再判断显示的列数是哪些,再从显示的列中得到想要的数据,这些步骤就交给大家自己实现了。
Less-03
打开第三关发现与前两关都是相似的,都是传递一个id的参数,所以我们就直接尝试是否能找到它的报错信息,进行判断是字符型注入还是数字型注入经过尝试,我们可以知道该题是字符型注入,使用单引号与小括号进行闭合,所以我们构造一下我们的注入语句
闭合之后我们就可以使用order by判断列数,接着使用union联合查询,再进行判断显示的列数的,构造注入语句就可以得到我们需要的数据了,接下来就需要大家自己构造注入语句了。
Less-04
打开第四关发现与前三关都是一个套路,都是需要传递一个id的参数,所以我们就直接尝试是否能找到它的报错信息,进行判断是字符型注入还是数字型注入经过尝试,在参数后添加双引号的时候出现了报错信息,由报错信息我们可以知道该题是字符型注入,使用双引号与小括号进行闭合,那么也就是说该题就与第三题的解题思路一致,只不过是把单引号换成了双引号而已,因此在这里就不重复进行啰嗦了,请各位自行尝试。
Less-05
当我来到第五关时,看到这界面我还以为与前面的四关没有什么差别,当我输入id参数的时候就只显示了如下的页面然后我把id的值变成了一个负数,得到这个页面
也就是说此题没有回显,我们尝试进行查找它的报错信息,所幸还有报错信息
由报错信息我们可以得到该题是一个字符型注入,使用单引号进行闭合,又由于没有回显我们这个就直接使用报错注入
这里我得到的数据库名,想要得到其他的数据就只要修改url中的database()就可以得到想要得到的数据了,请大家发挥想象自行构造注入语句。
自己选择的路,爬也要爬完