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 ...
随机推荐
- 基于.NET Core2的图片上传
其实,.NET Core2的图片上传挺好做的,只是,有些坑要注意.......话不多说,上代码 public async Task<IActionResult> Upload([FromS ...
- js 判断一个元素是否在滚动的可视区域内,不在就固定到可视区域的上方。
前言:最近工作中,有这样一个场景,判断一个元素是否在滚动的可视区域内,不在就固定到可视区域的上方.为了以后再次遇到,所以记录下来,并分享.转载请注明出处:https://www.cnblogs.com ...
- 区分IE8/IE7/IE6及其他浏览器-CSS “\9″
区分IE8/IE7/IE6及其他浏览器-CSS “\9″ 原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com] by zhangxinxu from h ...
- java-接口和抽象类的联系和区别。
接口和抽象类的联系和区别. 一,简单总结 1.抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象. 2.抽象类要被子类继 ...
- windows下生成上传git时需要用的SSH密钥
参考:Windows上传代码到Github 打开“Git Bash” 输入 ssh-keygen -C "your email" -t rsa 出现如下结果: 成功后,信息里会显示 ...
- 将ArcGIS Server的JSON转化为SHP文件
# -*- coding: utf-8 -*- # -------------------------------------------------------------------------- ...
- 有用的linux指令(资料转载)
对 Linux 新手非常有用的20个命令 你打算从Windows换 ...
- vo、po、dto、bo、pojo、entity、mode如何区分
https://blog.csdn.net/qq_41604862/article/details/79675223?utm_source=blogxgwz0
- [C#] Microsoft .Net框架SerialPort类的用法与示例
从Microsoft .Net 2.0版本以后,就默认提供了System.IO.Ports.SerialPort类,用户可以非常简单地编写少量代码就完成串口的信息收发程序.本文将介绍如何在PC端用C# ...
- Axure响应式进阶
Axure响应式进阶 2018年6月2日luodonggan 随大屏幕分辨率普及,网页设计在交互阶段就必须考虑响应式方案,Axure7作为我偏爱的交互设计工具果然也没让大家失望的新增了Adaptive ...