sql注入基础

什么是sql注入

所谓SQL注入,就是通过把SQL命令插入到WEB表单提交或输入域名或页面请求的查询字符串,最终到达欺骗服务器执行恶意的SQL命令,从而进一步得到相应的数据信息。
简单来说就是通过构造一条精巧的语句,来查询到想要得到的信息。

注入分类

按照查询字段

  • 字符型: 当输入的参数为字符串时,称为字符型。
  • 数字型: 当输入的参数为整形时,可以认为是数字型注入。

按照注入方法

  • Union注入
  • 报错注入
  • 布尔注入
  • 时间注入

注入步骤

  • 查找注入点(URL参数,表单输入,HTTP 头部等)
  • 判断是字符型还是数字型注使用and1=1和and1=2等来判断
  • 如果字符型,找到他的闭合方式' ') "
  • 判断查询列数,group by order·by
  • 查询回显位置

示例

下面我通过一个简单的例子来讲解上述步骤
首先打开sqli-labs靶场less1
靶场

判断注入类型

利用HackBar提交一个参数来判断是字符型还是数字型注,发现页面正常显示,那么该题就是字符型
页面
那么这边为什么会是字符型呢?
因为如果是字符型的话,1=2就不存在数学逻辑关系,而单单只是1=2这个字符。
如果他是数字型呢?
如果它是数字型那么1=2就会存在数学逻辑判断,被判断为假,因为1=2显然不成立,因此页面不会正常显示。
由此可以得出一个快速判断的方法
提交?id=2-1参数,如果它是字符型,那么页面就会出现与id=2时相同的回显。如果他是数字型,那么页面就会出现与id=1时相同的回显。因为在字符型下不存在数学逻辑运算。

寻找闭合方式


sql注入基础
https://linsport.github.io/2025/11/30/sql/sql注入基础/
作者
sport lin
发布于
2025年11月30日
许可协议