Sqli labs系列-less-1 详细篇

Posted cagebird

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sqli labs系列-less-1 详细篇相关的知识,希望对你有一定的参考价值。

要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码。

我一开始就准备等我一些原理篇总结完了,我就开始弄这个,毕竟这个里面涉及到的 SQL 注入知识很全,我贴一个下载地址:Sqli labs系列下载地址

对了还有我这个系列的头顶图,那个图是某个低调群的活跃用户装X墙,纯属装 X ,娱乐着玩了,大家别当真哈。

开了正文开始了!

首先我们先开始第一关,然后构造下注入环境,也就是在 http://127.0.0.1/sqli-labs-master/Less-1/ 这个后面加入 inderx.php?id=1 ,当然我们也可以直接加 ?id=1 因为变量就是 id =1 ,只要有变量就行。

技术分享下面开始添加 。

技术分享添加后,是不是就出来数据了,那么我们就可以开始构造注入语句了。

常规的,我先在 id=1 后面输入 and 1=1 来进行判断是否会显示正确。

技术分享结果很明显,显示正确,那我就开始输入 and 1=2 进行显错测试。

技术分享结果没有显错,我就开始纳闷了,我先构造了下,可能是的SQL语句。

技术分享然后我开始输入 ‘ 这个点符号,让它报错,我进行思考。

技术分享对于我一直玩这个来说,报错的一看,我就知道原因出在哪了,但是大家可能没看出来,那我就换个报错符号,用 \ 这个来代替 ‘ 。

技术分享我们把报错信息,复制到我们的新建文本里,进行分析。

技术分享看到这里,不知道大家能看出来不能,我先猜想一下,他的 SQL 语句应该是这样的。

技术分享关于后面的 line 1 这个就是个逐字查看的,我们先不分析这个,只分析如何才能注入。

好了我再把上面的那个报错的 SQL 语句给拆分下,这样大家都能直接看懂。

技术分享我在贴一个。

技术分享

看出来了没?是不是参数被强制转成字符串?我们只要把这个 ‘ 给前后闭合了,不就可以进行查询了?

在这里,大家肯定想的是注释掉后面的不就行了?对了,注释掉就行。不过由于我是经常玩的,我就直接想开两个方法,一个是闭合,一个是注释。

技术分享第一个是闭合,第二个是 -- 注释,对了,两个杠后面必须有个空格才能起到注释的效果,不过我一般都是用 + 来替换空格, --+ ,就这样的注释。

好了我们开始测试第一个闭合法,看看行不行。

技术分享and 1=1 ,显示正确,那我再测试 and 1=2 。

技术分享好的,如我所想,报错了。

再测试下,注释法。

技术分享and 1=1 显示正常,再测试 and 1=2 。

技术分享显示错误了,那么这基本上就可以开始我的 SQL 注入大法了!

我要开始注入了!!!

首先先判断字段数,我一开始是用的 order by 这个查询的,结果查了100个了还不报错,那就说明这个失败了,我只能用 union select 这个方法查了,我查了一共有3个字段数。

技术分享然后我开始让它报错,在 union select 前面加上 and 1=2 ,促使它报错。

技术分享然后开始开始查询库名,版本号,用户。

用户。

技术分享库名。

技术分享版本号。

技术分享由于是5.0以上,我们可以直接查询。

我先把当前库名转码下。

技术分享然后开始爆出全部的表名。

技术分享我选中了 users 这个表名,继续转码。

技术分享然后开始爆该表名下的所有列名。

技术分享我直接选择了两个,开始直接爆数据。

技术分享结果啥都没出来,还报错了。。。。。。

然后我看到报错提示后,果断换 注释法,注释掉后面的。。。。

技术分享好了,成功爆出数据。

好了第一关,我过关了。

总结:

我知道我第一关写的很详细,不过60多光,我肯定是写不完了,我玩这个在没事的时候,玩玩,玩了我就直接写第二贴。还有如果对我下面的攻击语句有点陌生的话,可以查看本专栏下的 mysql 数据库 SQL 注入攻击原理分析,进行学习。

地址: mysql注入篇

以上是关于Sqli labs系列-less-1 详细篇的主要内容,如果未能解决你的问题,请参考以下文章

sqli labs注入记录(Less-1至Less-10)

SQLI-LABS系列(持续更新)

《SQLi-Labs》01. Less 1~5

sqli-labs通关1-5教程

sqli-labs less-1

sqli-labs Less(1-35) 小结