sql注入基础原理(基础知识之SQL)小编带大家一起去了解一下
sql注入基础原理(基础知识之SQL)
0x0 SQL注入的介绍
以PHP为例子:
$query ="SELECT * FROM users WHERE id=$_GET['id']";
这里ID参数可控,非法用户可以仍以拼接SQL语句进行攻击。可以构造报错注入、盲注、union注入等方法。
0x01SQL注入原理
满足两个条件:
1、前端传入后端参数内容是用户可以进行控制。
2、参数传入数据库后可以进行执行。
例如:
select * from users where id =1 '
select * from users where id =1 and 1=1
因为1=1为真,where语句 id=1也为真,返回结果两个情况是一样的,当 and 1=2参数时候,返回为假的,出现页面错误。
现在SQL注入一般会拦截了and、=等关键字符的注入,注入要进行绕过。
0x02MYSQL数据库注入相关知识点
5.0版本之后,MYSQL默认有“information_schema"数据库,记住三个表名SCHEMATA、TABLES、COLUMNS
SCHEMTA表
TABLES表
基础知识之SQL注入原理
COLUMNS表
0x03MYSQL查询语句
select 字段名 FROM 库名.表名
select 字段名 FROM 库名.表名 where 已知条件字段名=‘已知条件值’
select 字段名 FROM 库名.表名 where 已知条件1字段名=‘已知条件1值’and 已知条件2值
='已知条件2值'
limit的用法
格式:limit m,n, 其中m是指记录开始的位置,n是取多少个记录。
基础知识之SQL注入原理
limit用法
记住几个常用函数:
database():当前网站使用的数据库。
version(): 当前Mysql版本。
user(): 当前Mysql的用户。
注释符:
#、--空格、/**/
内联注释:
/!**/