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";
# keyword是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)
这样就不须要再猜username与password啦
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 究竟有哪些东西& 手工注入的基础要领的更多相关文章
- Mysql数据库的mysql Schema 究竟有哪些东西& 手工注入的基础要领
#查看数据库版本号 mysql> select @@version; +------------+ | @@version | +------------+ | 5.5.16-log | +- ...
- Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数
mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...
- 【MySQL 数据库】MySQL目录
目录 [第一章]MySQL数据概述 [第二章]MySQL数据库基于Centos7.3-部署 [MySQL解惑笔记]Centos7下卸载彻底MySQL数据库 [MySQL解惑笔记]忘记MySQL数据库密 ...
- MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题
1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...
- 如何登录mysql? cmd怎么连接mysql数据库||从MYSQL客户端登录MYSQL
1 2 3 4 5 6 7 分步阅读 Mysql开源数据库,任何人都可以下载安装使用.那么安装好的mysql如何登陆连接mysql数据库呢?本经验咗嚛介绍几种常见的方法 工具/原料 mysql 连 ...
- VC++6.0连接MySQL数据库(MySQL API)
一.MySQL的安装 Mysql的安装去官网下载就可以...最新的是5.7版本..二.VC6.0的设置(1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories ...
- 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 其下载地址:ht ...
- nodejs学习(三)--express连接mysql数据库,mysql查询封装
一.说一下 连接不同的数据库需要安装相应的插件,此demo使用mysql数据库,需自行安装mysql数据库软件. 新建数据库webapp, 新建表users: 二.直接开码 npm install m ...
- 《MySQL数据库》MySQL数据库安装(linux)
1. 下载安装包: 百度网盘:链接: https://pan.baidu.com/s/1toGl8O9gMBpDWn0mHWwFyg 提取码: i51g 官网下载:https://dev.mysql ...
随机推荐
- 利用SignalR来同步更新Winfrom小试
之前写了个用Socket来更新多个Winfrom的试例,这两天看了下SignalR,也用这个来试一下 SignalR 地址:https://www.asp.net/signalr 我这个也是基于 ht ...
- mysql,存储引擎,事务,锁,慢查询,执行计划分析,sql优化
基础篇:MySql架构与存储引擎 逻辑架构图: 连接层: mysql启动后(可以把mysql类比为一个后台的服务器),等待客户端请求,当请求到来后,mysql建立一个一个线程处理(线程池则分配一个空线 ...
- Java的工厂模式(三)
除了一般的工厂模式之外,还有抽象工厂模式,抽象工厂模式更强调产品族的概念,一个具体工厂生产出来的系列商品都是一个产品族的. 假设我们有两个具体工厂,分别是袋装水果工厂和罐装水果工厂,它们都能生产苹果和 ...
- xshell复制粘贴
用户看到这个标题肯定会觉得小编脑子坏掉了,复制粘贴不就是Ctrl+C,Ctrl+V嘛,但是在xshell却不尽然. 现象: 在xshell界面中需要用到之前的一段代码,自然是选中,熟练的键入Ctrl+ ...
- react组件里阻事件冒泡
e.nativeEvent.stopImmediatePropagation();
- 无法在类...中找到资源".bmp"
在WinForm中写的一个程序,在项目中添加了一个bmp图片,然后 public void SetSubType(int SubType) { m_subType = SubType; switch ...
- linux centos7最小化安装桥接模式网络设置、xshell、xftf
一.网络连接设置1.桥接模式 使用电脑真实网卡,可以和自己的电脑连接,也可以和外部网络连接2.NAT模式 使用wmware network adapter vmnet8虚拟网卡,可以和自己的电脑连接, ...
- java实现Kafka的消费者示例
使用java实现Kafka的消费者 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3 ...
- CCSUOJ评测系统——第二次scrum冲刺
1.小组成员 舒 溢 许嘉荣 唐 浩 黄欣欣 廖帅元 2.第二次冲刺任务安排 对HUSTOJ数据库进行分析 序号 表名 作用 备注 1 compileinfo 记录编译错误的记录 2 contest ...
- SQL SERVER Management Studio编写SQL时没有智能提示的解决方式
1. 检查设置里是否启用智能感知(Intellisence),可以在“工具”→“选项”里设置 2. 如果启用后还是无效,可以新建一个查询窗口查询,输入关键词的前面几个字母看是否有提示(或者使用Ctrl ...