![b036326cd060a6ed6fd57108ab2f1e73.png](https://i-blog.csdnimg.cn/blog_migrate/a88bb1425823dd3ec989d360257815ff.jpeg)
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
![8de4cd6554543982c86ef02e3bdfbdff.png](https://i-blog.csdnimg.cn/blog_migrate/144c41af4d0c372e1fc499cfc5fe97ab.jpeg)
SCHEMTA表
![62213b6a8d7e0087fb1dca3812f9e5d3.png](https://i-blog.csdnimg.cn/blog_migrate/017d759812fe13e456f0858c52b3a3d6.jpeg)
TABLES表
![60edbaedc512108e82463779a9c5bfcc.png](https://i-blog.csdnimg.cn/blog_migrate/18a221b8e55c7206e92566f2613d4fe3.jpeg)
COLUMNS表
0x03MYSQL查询语句
select 字段名 FROM 库名.表名
select 字段名 FROM 库名.表名 where 已知条件字段名=‘已知条件值’
select 字段名 FROM 库名.表名 where 已知条件1字段名=‘已知条件1值’and 已知条件2值
='已知条件2值'
limit的用法
格式:limit m,n, 其中m是指记录开始的位置,n是取多少个记录。
![f5a578fe095fa5cd364a9a41175678d2.png](https://i-blog.csdnimg.cn/blog_migrate/e0dafb5d1c282e518a66c33e273cf644.jpeg)
limit用法
记住几个常用函数:
database():当前网站使用的数据库。
version(): 当前Mysql版本。
user(): 当前Mysql的用户。
注释符:
#、--空格、/**/
内联注释:
/!**/
下次进行union的讲解。