观前提醒
本篇文章需要前置知识
一、了解什么是sql注入
我这里不扯概念,就简单讲讲我的理解
sql注入是指后台在拼接sql查询语句时未做安全处理而导致的非法查询
直接看代码
如上,$id是用户输入的值,会直接拼接在sql语句上,hacker可以通过报错、联合查询等方法获取数据库中的数据。这就叫sql注入
二、sql注入有关数据库的那些事
1. 联合查询
联合查询我个人认为是最有用的一种查询,一句话脱库不是梦
2.
二、常见的sql注入方式
1. 数字型注入
#未完待续
三、一般注入思路
1.基于报错的联合查询注入
- 判断闭合方式
- 利用order by 判断列数
- union配合select收集信息
- 数据库表名
- 列名
- 脱库
笔记
2.基于报错的报错注入
1.主键重复报错
2.updatexml()报错
数据溢出报错(仅mysql5.5.53以下)
四、注入的高级技巧
1.堆叠注入
改表名
预处理语句
正则绕过技巧
- concat
- char
- hex