SQL注入基础

sql常见语句:

1.select(查) * from 表名:select * from 表名

2.insert into(增) :insert into 表名 values(value1, value2…)

3.delete(删除):delete from 表名 where 字段名=value;

                            drop database 库名;

4.update(改):update 表名 set 字段名1=value1, 字段名2=value2;

5.--查询当前操作的数据库

show database;

同上:

SELECT * FROM information_schema.SCHEMATA;

6.--查询当前mysql版本

   select version();

7.--查询当前mysql登录的用户

  select user();

8.--当前时间

  select now()

9.-- 查看数据路径

  SELECT @@datadir;

10.--  安装路径

  SELECT @@basedir;

系统库释意:

一、information_ schema库:是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息,比如数据库名,数据库表,表字段的数据类型与访问权限等。Web渗透过程中用途很大。

       1.SCHEMATA表:提供了当前MySQL实例中所有的数据库信息,show databases 结果取之此表

       2.TABLES表:提供了关于数据中表的信息

       3.COLUMNS表:提供了表中的列信息,详细描述了某张表的所有列以及每个列的信息。

二、mysql库: MySQL的核心数据库,主要负责存储数据库的用户、权限设置、关键字等mysq|自己需要使用的控制和管理信息。

三、performance_ schema 库:内存数据库,数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,

  将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。

四、sys库:通过这个数据库数据库,可以查询谁使用了最多的资源基于IP或是用户。哪张表被访问过最多等等信息。

 

sql注入步骤:

  1. 判断是否可以注入

    例如:在后面加个 ' 单引号看是否报错,或者 ‘ and 1=2 --+ 主要是看有没有报错,有报错就说明存在sql注入

  1. 判断数据库的类型-数据库的指纹
  2. 获取库名
  3. 获取表名
  4. 获取列名
  5. 获取数据

sql注入的分类

根据注入位置数据类型可将SQL注入分为两类:数字型和字符型

例如:

       数字型:select * from table where id = 用户输入id

例如:
       字符型:select * from table where id = '用户输入id'

       通过url中修改对应的ID值,为正常数字,大数字,字符(单引号、双引号、双单引号、括号)、反斜杠\来探测URL中是否存在注入点

 

posted @ 2023-03-13 19:20  0x1e61  阅读(53)  评论(0)    收藏  举报