sql注入基础
什么是sql注入
所谓SQL注入,就是通过把SQL命令插入到WEB表单提交或输入域名或页面请求的查询字符串,最终到达欺骗服务器执行恶意的SQL命令,从而进一步得到相应的数据信息。
简单来说就是通过构造一条精巧的语句,来查询到想要得到的信息。
注入分类
按照查询字段
- 字符型: 当输入的参数为字符串时,称为字符型。
- 数字型: 当输入的参数为整形时,可以认为是数字型注入。
按照注入方法
- Union注入
- 报错注入
- 布尔注入
- 时间注入
注入步骤
- 查找注入点(URL参数,表单输入,HTTP 头部等)
- 判断是字符型还是数字型注使用
and1=1和and1=2等来判断 - 如果字符型,找到他的闭合方式
'')" - 判断查询列数,
group byorder·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注入基础/