• 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注入篇

  • 相关阅读:
    toad 快捷键大全
    validateRequest 相关的作用
    为何有着良好设计的系统代码反而不容易看懂?
    致命错误: zlib.h:没有那个文件或目录
    全局变量相互依赖和初始化顺序的解决办法
    解决“possibly undefined macro: AC_PROG_LIBTOOL”
    Rsync完全配置
    undefined reference to `clock_gettime'
    解决“configure: line 2747: g: command not found”
    openssl编程轻松入门(含完整示例)
  • 原文地址:https://www.cnblogs.com/dsli/p/7337220.html
Copyright © 2020-2023  润新知