Mysql数据库的mysql Schema 到底有哪些东西& 手工注入的基础要领

#查看数据库版本

mysql> select @@version;

+------------+

| @@version  |

+------------+

| 5.5.16-log |

+------------+

1 row in set (0.00 sec)

mysql> select * from information_schema.schemata; # 保存了系统的所有的数据库名 ,关键的字段是schema_name

# 2 rows in set (0.04 sec)表示只有2个数据库

+--------------+--------------------+----------------------------+------------------------+----------+

| catalog_name | schema_name        | default_character_set_name | default_collation_name | sql_path |

+--------------+--------------------+----------------------------+------------------------+----------+

| def          | information_schema | utf8                       | utf8_general_ci        | null     |

| def          | test               | gb2312                     | gb2312_chinese_ci      | null     |

+--------------+--------------------+----------------------------+------------------------+----------+

mysql> select * from information_schema.columns;  #

# 关键的字段是table_name & column_name  411 rows in set (0.05 sec)

+---------------+--------------------+---------------------------------------+-------------------------------+------------------

| table_catalog | table_schema       | table_name                            | column_name                   | ordinal_position | column_default      | is_nullable | data_type |

character_maximum_length | character_octet_length | numeric_precision | numeric_scale | character_set_name | collation_name    | column_type         | column_key | extra

| privileges                      | column_comment |

+---------------+--------------------+---------------------------------------+-------------------------------+------------------

mysql> select * from information_schema.tables;   # 包含所有的表名 ,38 rows in set (0.09 sec) 表示有38张表

mysql> select count(*) from information_schema.tables;  # count(*)返回一共有多少行(就是多少条记录)

+----------+

| count(*) |

+----------+

|       38 |

+----------+

1 row in set (0.00 sec)

#关键的字段是table_column & table_name

+---------------+--------------------+---------------------------------------+-------------+--------+---------+------------+--

| table_catalog | table_schema       | table_name                            | table_type  | engine | version | row_format | table_rows | avg_row_length | data_length |

max_data_length | index_length | data_free | auto_increment | create_time         | update_time         | check_time | table_collation   | checksum | create_options  |

table_comment |

+---------------+--------------------+---------------------------------------+-------------+--------+---------+------------+--

mysql> select * from information_schema.tables where table_schema="test";

# 关键字是table_name和table_schema  (数据库名)

+---------------+--------------+------------+------------+--------+---------+------------+------------+----------------+-----

| table_catalog | table_schema | table_name | table_type | engine | version | row_format | table_rows | avg_row_length | data_length | max_data_length | index_length |

data_free | auto_increment | create_time         | update_time | check_time | table_collation   | checksum | create_options | table_comment |

+---------------+--------------+------------+------------+--------+---------+------------+------------+----------------+-----

| def           | test         | t_users    | base table | innodb |      10 | compact    |          0 |              0 |       16384 |               0 |        16384 |   9437184 |              1 | 2012-10

-06 12:21:23 | null        | null       | gb2312_chinese_ci |     null |                |               |

+---------------+--------------+------------+------------+--------+---------+------------+------------+----------------+-----

1 row in set (0.00 sec)

mysql> select * from information_schema.columns where table_name="t_users";

# 关键是得到 column_name

+---------------+--------------+------------+-------------+------------------+----------------+-------------+-----------+----

| table_catalog | table_schema | table_name | column_name | ordinal_position | column_default | is_nullable | data_type | character_maximum_length |

character_octet_length | numeric_precision | numeric_scale | character_set_name | collation_name    | column_type | column_key | extra          | privileges                      |

column_comment |

+---------------+--------------+------------+-------------+------------------+----------------+-------------+-----------+----

| def           | test         | t_users    | id          |                1 | null           | no          | int       |                     null |                   null |                10 |             0 | null               |

null              | int(11)     | pri        | auto_increment | select,insert,update,references |                |

| def           | test         | t_users    | name        |                2 | null           | no          | text      |                    65535 |                  65535 |              null |          null | gb2312

| gb2312_chinese_ci | text        |            |                | select,insert,update,references |                |

| def           | test         | t_users    | password    |                3 | null           | no          | text      |                    65535 |                  65535 |              null |          null | gb2312

| gb2312_chinese_ci | text        |            |                | select,insert,update,references |                |

+---------------+--------------+------------+-------------+------------------+----------------+-------------+-----------+----

3 rows in set (0.01 sec)

mysql> select "id","password" from information_schema.columns where table_name="t_users";

# 注意当要查询的变量是常数的时候就是空查询,返回的一定就是你的查询常量,一般是在union的查询里确定

显示位置而用的

+----+----------+

| id | password |

+----+----------+

| id | password |

| id | password |

| id | password |

+----+----------+

3 rows in set (0.02 sec)

mysql> use test;  #使用该数据库

database changed

mysql> select * from test;

error 1146 (42s02): table ‘test.test‘ doesn‘t exist

mysql> select * from t_users;

empty set (0.00 sec)

这样就不需要再猜用户名和密码啦

insert into `t_users`(`id`, `name`, `password`) values (001,‘张三疯‘,‘123456‘);

#插入一条记录之后

mysql> select * from t_users;

+----+--------+----------+

| id | name   | password |

+----+--------+----------+

|  1 | 张三疯 | 123456   |

+----+--------+----------+

1 row in set (0.00 sec)

#如果没有权限添加,就只有逐位猜值啦

mysql> select count(*) from t_users where len(password)=12;

error 1305 (42000): function test.len does not exist

mysql>

# 二分查找法

#这里报错啦,该函数不存在,在mysql是length()在access里是len();

mysql> select count(*) from t_users where length(password)=12;

error 1305 (42000): function test.len does not exist

#首先确定了密码的长度

mysql> select password from t_users where length(password)<6;

empty set (0.00 sec)

mysql> select password from t_users where length(password)>6;

empty set (0.00 sec)

mysql> select password from t_users where length(password)=6;

+----------+

| password |

+----------+

| 123456   |

+----------+

1 row in set (0.00 sec)

#再进行逐位猜值

select * from t_users where asc(left(password,1))>0;

mysql> select password from t_users where left(password,1)<1;

empty set (0.00 sec)

mysql> select password from t_users where left(password,1)<2;

+----------+

| password |

+----------+

| 123456   |

+----------+

#函数执行并成功返回,说明第一位的值就是1

#或者直接查询密码:

mysql> select password from t_users where length(‘password‘)>0;

+----------+

| password |

+----------+

| 123456   |

+----------+

1 row in set (0.00 sec)

mysql> select password from t_users where ascii(left(password,1))<2;

empty set (0.00 sec)

#在mysql里面什么函数都要写全啦,在acess里直接就是asc();

mysql> select password from t_users where ascii(left(password,1))=49;

+----------+

| password |

+----------+

| 123456   |

#可以直接擦每一位的值,也可以查acs值,但是直接查值是快些

#这样直到猜完length(password)位为止

#但是中文的名字不好猜啊,1个字,2个字节

>>> int("张")

traceback (most recent call last):

file "<stdin>", line 1, in <module>

valueerror: invalid literal for int() with base 10: ‘\xd6\xec‘

>>>

>>> chr(66)

‘b‘

>>>

#其实还是可以查的

mysql> select password from t_users where left(name,1)="张";

+----------+

| password |

+----------+

| 123456   |

+----------+

1 row in set (0.00 sec)

mysql> select password from t_users where left(name,2)="张";

empty set (0.00 sec)

#记住left是返回的所有的左边的值哈

mysql> select password from t_users where left(name,2)="张三";

+----------+

| password |

+----------+

| 123456   |

+----------+

#mid(匹配的字段,从第几个开始,取几个);可以完成逐位比较

mysql> select password from t_users where mid(name,2,1)="三";

+----------+

| password |

+----------+

| 123456   |

+----------+

1 row in set (0.00 sec)

Mysql数据库的mysql Schema 到底有哪些东西& 手工注入的基础要领

时间: 2025-01-08 02:25:26

Mysql数据库的mysql Schema 到底有哪些东西& 手工注入的基础要领的相关文章

MySQL数据库安装MySQL Apply Security Settings不成功

MySQL数据库安装MySQL Apply Security Settings不成功,是件让我们很头疼的事.仔细想想,其实也没有想象的那么难,造成不成功的原因不外乎就是有一些权限问题或者是一些没有开启的服务,知道这些,我们再解决起来也就容易多了.本文就介绍了这一解决方案,接下来就让我们来一起了解一下这一解决过程. 解决方案如下: 打开命令提示符(管理员权限: 开始 - 程序 - 附件 - 命令提示符 - 右键 - 以管理员身份运行). 执行net stop mysql如果已经启动了MySQL,把

数据库中的Schema到底是什么

参考:http://database.guide/what-is-a-database-schema/ 在数据库中,schema(发音 “skee-muh” 或者“skee-mah”,中文叫模式)是数据库的组织和结构,schemas andschemata都可以作为复数形式.模式中包含了schema对象,可以是表(table).列(column).数据类型(data type).视图(view).存储过程(stored procedures).关系(relationships).主键(prima

MYSQL数据库学习----MYSQL数据库、表操作和引擎区别

MYSQL数据库的操作 一:查看MYSQL中所有的数据库 SHOW DATABASES; 二:创建数据库 CRETAE DATABASE 数据库名称; 三:删除数据库 DROP DATABASE 数据库名称; 四:查看数据库支持的存储引擎 SHOW ENGINES; 四:连接MYSQL数据库 USE 数据库名称; MYSQL数据库中表的操作 一:查看数据库中的所有表格 SHOW TABLES: 二:查看表格的结构 DESC 表名称;(基本结构): 或 SHOW CREATE TABLE 表名称;

C#调用MySQL数据库(使用MySql.Data.dll连接)mysql-connector-net-6.10.4.msi

下载地址:http://dev.mysql.com/downloads/connector/net/ 安装指导 1.安装:mysql-connector-net-6.10.4.msi 其下载地址:http://dev.mysql.com/downloads/connector/net/ 在Windows10 操作系统安装mysql-connector-net-6.10.4.msi 默认是安装在C盘: 安装完后在应用工程中引用组件MySql.Data.dll. 然后在应用工程中引用组件:MySql

python连接mysql数据库(MySQL)

在介绍python在数据库中的操作之前先简单介绍点mysql中的操作语言: [[email protected] 2018-01-24]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 194 Server version: 5.6.16 Source distribution Copyright (c) 2

mysql数据库之mysql基础命令

下载和安装mysql数据库 mysql为我们提供了开源的安装在各个操作系统上的安装包,包括ios,liunx,windows. mysql的安装,启动和基础配置-------linux版本 mysql的安装,启动和基础配置-------windows版本 基础sql语句 #进入mysql客户端 $mysql mysql> select user(); #查看当前用户 mysql> exit # 也可以用\q quit退出 # 默认用户登陆之后并没有实际操作的权限 # 需要使用管理员root用户

《MySQL数据库》MySQL数据库安装(windows)

MySQL安装包和操作工具 链接: https://pan.baidu.com/s/1BTfrHwVR1uNBuB_E27N55g 提取码: dhbv 1.首先解压文件包,我这解压到E:\install_work\mysql目录下: 2.发现mysql根目录下没有data目录和my.ini文件,不要紧,初始化mysql的时候系统会自动创建一个data目录,我们只需创建一个my.ini文件即可. 新建my.ini文件,将下面代码复制到my.ini文件中: [Client] port = 3306

使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的MySQL Community Server 选择想要的版本进行下载 之后的步骤,因为本人已经安装过MySQL数据库,而卸载重装会比较麻烦,卸载不干净会导致新的装不上,所以可以参考下面的博客,因为官网的改动,前面的部分已经与该博客不符,按照本人在上面的介绍寻找即可 https://blog.csdn

MYSQL数据库学习----MYSQL函数

MYSQL函数分为几种 数学函数 字符串函数 日期和时间函数 条件判断函数 系统信息函数 加密函数 格式化函数 一:数学函数 主要使用的几个数学函数 1 ABS()----绝对值函数 eg. SELECT ABS(-5); 返回 5 2 PI()----圆周率函数 eg. SELECT PI(); 返回 3.141596 3 SIGN()----符号函数 正数返回1,0返回0,负数返回-1 eg. SELECT SIGN(5),SIGN(0),SIGN(-5); 返回 1,0,-1 4 RAND