Sqli-labs靶场详细攻略Less 1-5

Less 1-5

Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)

在这里插入图片描述

注入语句
判断当前查询的数据库表共有几列
http://127.0.0.1/Less-1/?id=-1' order by 4 --+
  1. 其中代表使用get方法传入参数,参数名称为id

  2. id赋值为-1,也就是一个不成立的条件,使系统原本要查绚的东西不回显,因为在这个系统中只回显两个值,如果正常查询的话,注入的语句查询结果就不能回显。此处后面有详细说明。

  3. -1后面的'作用是闭合后端php语言中传递参数原有的一个引号(传入的参数为字符型)。

  4. 后面的order by 4中通过改变其中数字的值,从1,2,3直到4依次尝试,这里尝试到4页面出现错误信息,代表数据库表共有三列。(order by 在sql语句中表示按照第几列排序输出,默认升序,后跟数字或列名)

  5. 最后的--+的作用使注释掉php语言中传入参数最后的那个引号。sql语句中使用--进行单行注释,这个方法在--后加入一个空格才有效。而在某些http请求实现过程中+发送到服务端后会被转化成空格。因此这里使用--+进行注释,当然将+换为空格的url编码%20也可以。同时,mysql数据库中也可以使用#进行注释,但http请求中并不包含#,因此要将#进行url编码为%23

    例:

create database database_1    -- 创建数据库database_1
create database database_1    #创建数据库database_1
查看哪一列的查询会回显
http://127.0.0.1/Less-1/?id=-1' union select 1,2,3 --+

假设存在数据库表

id username password
1 Dumb Dumb

正常查询传入参数id=1时既可以查到上述数据。

当注入语句为

http://127.0.0.1/Less-1/?id=1' union select 1,2,3 --+

时,得到结果为:

在这里插入图片描述

此时只回显了查询id=1的部分。这时可以将id传入为-1,使得查询不成立,这时的结果就为:

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值