sql注入基础原理(基础知识之SQL)

35小吃技术网 推荐阅读 2023年04月09日15时30分32秒 134 0

sql注入基础原理(基础知识之SQL)小编带大家一起去了解一下

 

sql注入基础原理(基础知识之SQL)-第1张图片

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

 

sql注入基础原理(基础知识之SQL)-第2张图片


SCHEMTA表

 

 

sql注入基础原理(基础知识之SQL)-第3张图片

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的用户。

注释符:

#、--空格、/**/

内联注释:

/!**/