从数据库说偏移注入原理

从数据库说偏移注入原理

场景

在常见的SQL注入当中,一般是将数据库中的表名、列名猜解出来之后,然后通过查询的方式获取具体的数据值。如SqlMap就是采用这样的注入流程进行数据获取的。但是这样的方式存在一个问题就是当知道数据表的名字,但是列名很长,或者数据库系统比较简单,不能通过查询系统数据库中的信息获取到用户表中的表名时就很难获取到想要的数据信息,如access数据库。(比如其中SQL Server 和MySQL都可以通过查询系统数据库获取到具体的列名)


原理

简单来说偏移注入的原理就是通过连接查询方式将想要获取到的数据携带出来。其中SQL中的连接查询包含一下几种方式:

  • INNER JOIN: 如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行
    几种连接查询方式详细使用说明

原理详情

在注入中其实是在一个表中查询数据,所以以上几种查询方式在注入中查询到的结果都是一样的,所以在这里选择INNER JOIN(和JOIN一样)作为样例。其中用到的数据库表users如下:
在这里插入图片描述

用到的userinfo表如下:
在这里插入图片描述
首先在数据表userinfo中做一个简单的查询如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值