SQL注入(一)--原理介绍和基础
本文最后更新于:2 年前
前言
最近刚刚结束“前端三剑客”的学习,而web方向在开始学习SQL注入。我个人觉得新手入门SQL注入有些难,而且碰到CTF题目也不太敢下手,所以在这里简单说一下新手需要注意的点。
正文
0x01 SQL注入原理介绍
当Web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。
所以sql注入漏洞的本质是将用户输入的数据当做代码来执行。
sql注入的两个关键条件:用户可以控制输入的内容;web应用把用户输入的内容带进数据库执行。
0x02 SQL注入基础
常用函数
1 |
|
必记的一库三表
一库:information_schema(MySQL默认数据库)
三表:
0x01 SCHEMATA:存储了MySQL下每一个数据库的相关信息
- schema_name(字段):数据库名
0x02 TABLES: 存储了MySQL下每一个表的相关信息
TABLE_NAME(字段):数据表名
TABLE_SCHEMATA(字段):该数据表属于哪一个数据库
0x03 COLUMNS:存储了MySQL下每一个数据表中的所有列名
- COLUMN_NAME(字段):字段名称
- TABLE_NAME(字段):该字段属于哪一个数据表
- TABLE_SCHEMA(字段):当前字段所属数据表所在的数据库名称
注意:这三张表在information_schema数据库下面,在SQL注入过程中不能直接指定表名,要使用“数据库名.数据表名”的形式,例如:information_schema.tables。
SQL注入(一)--原理介绍和基础
https://rookieterry.github.io/2021/07/28/SQL注入(一)-原理介绍和基础/