数据库的结构
注释符
SQL注入简单教程
数据库的结构
学习SQL注入首先要知道数据库的结构
数据库由三个部分组成:数据库——表——列
在初始化安装MySQL数据库后有四个默认的库:
information_schema
mysql
performance_schema
test
复制
information_schema:
保存着数据库中所有数据库的信息,具体有数据库中有那些表,和表中的字段。
tables表,其中tales表中含有数据库中所有的表,有一个检索的功能:
• table_schema列:存放着所有数据库的名字
• table_name列:存放着所有数据库的表的名字
复制
columns表中:
• table_schema列:存放着所有数据库的名字
• table_name列:存放着所有数据库的表名
• column_name列:存放着所有数据库的列名
复制
schemata表:
存放着所有数据库的名字
• schema_name列:存放着所有数据库的的名字。只有数据库的名字
复制
所以注入时常用information_schema
mysql:
这个是mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。不可以删除,如果对mysql不是很了解,也不要轻易修改这个数据库里面的表信息。
performance_schema:
mysql5.5 版本 新增了一个性能优化的引擎,performance_schema这个功能默认是关闭的。
test:
没有东西
基础的查询语句:
查询语句:select table_schema from information_schema.tables
数据库和表的连接用”.“
这条指令是查询information_schema数据库的tables表中查询table_schema表的值
查询语句:select group_concat(table_schema) from information_schema.tables
函数:group_concta(将相同的行组合起来)
执行语句:insert into information_schema.tables(id,name,password) values(9,zxt,toor)
添加东西到表里面
注释符
搭建好环境后可以开始做题了
先记录一个知识点注释符:–+和#和/**/的使用
在mysql中–和#代表的是注释符
mysql中单行注释#号,使用方法是注释符后直接加注释内容
而–则是要在后面加一个空格才能生效,实现注释的作用。
能看到这里的命令没有执行– 后面的语句。
这也就是在做题中输入–
显示语法错误的原因,为什么要输入–+呢?因为+等于空格,所以在注入中才要输入–+
下期继续更新
原文地址:https://fendou.gqr5.cn/4124.html
暂无评论内容