1. 程式人生 > >Mysql資料庫的mysql Schema 到底有哪些東西& 手工注入的基礎要領

Mysql資料庫的mysql Schema 到底有哪些東西& 手工注入的基礎要領

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 到底哪些東西& 手工注入基礎要領

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

MySQL資料庫中的索引哪些什麼用

一、什麼是索引?    索引用來快速地尋找那些具有特定值的記錄,所有MySQL索引都以B-樹的形式儲存。如果沒有索引,執行查詢時MySQL必須從第一個記錄開始掃描整個表的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。如果作為搜尋條件的列

mysql查一張表哪些索引

col part ble tab comm 索引 pack comment key 可以用這個命令: show index from table_name; 得到輸出: +------------------+------------+------------+----

mysql資料庫中的索引那些、什麼用

mysql資料庫中的索引有那些、有什麼用 本文主要講述瞭如何加速動態網站的MySQL索引分析和優化。    www.2cto.com   一、什麼是索引?  索引用來快速地尋找那些具有特定值的記錄,所有MySQL索引都以B-樹的形式儲存。如果沒有索引,執行查詢時MySQL必須從第一個記錄開始掃描整個表的

Linux下安裝MySQL資料庫mysql-5.7.11

Linux下安裝MySQL資料庫(壓縮包方式安裝) https://www.cnblogs.com/xiaotao726/p/6562265.html PS:9、建立In ln -s /usr/local/mysql/ /usr/bin/ 連線資料庫時會顯示:[[email protecte

mysql資料庫--mysql函式及儲存過程

函式 函式:將一段程式碼封裝到一個結構中,在需要執行程式碼塊的時候,呼叫結構執行即可(程式碼複用) 函式分為兩類:系統函式和自定義函式 系統函式: 系統定義好的函式,直接呼叫即可。任何函式都有返回值,因此函式的呼叫是通過select呼叫。 mysql中字串基本操作單位(最常見的

mysql資料庫--mysql事務及變數

回顧 外來鍵:關聯關係(表與表之間,表中欄位指向另外一張表的主鍵) 外來鍵條件:欄位型別必須一致,儲存引擎必須為Innodb。 外來鍵約束: 子表約束:不可插入父表不存在的資料。 父表約束:三種約束模式(預設district,cascade,set null) 經常使用的

MySql資料庫MySQL中select * for update鎖表的問題

       由於InnoDB預設是Row-Level Lock,所以只有「明確」的指定主鍵,MySQL才會執行Row lock (只鎖住被選取的資料例) ,否則MySQL將會執行Table Lock (將整個資料表單給鎖住)。 舉個例子: 假設有個表單p

03-MySQL概述--資料庫的學習階段+資料庫基礎+關係型資料庫+關鍵字說明+SQL+MySQL資料庫+MySQL伺服器物件

一、資料庫的學習階段 1、基礎階段:MySQL資料庫的基本操作(增刪改查),以及一些高階操作(檢視、觸發器、函式、儲存過程等) 2、優化階段:如何提高資料庫效率,如索引、分表等 3、部署階段:如何搭建真實的環境系統,如伺服器叢集、負載均衡等 二、資料庫基礎 1、什麼

資料庫優化設計方案哪些?

1 引言 資料庫優化的目標無非是避免磁碟I/O瓶頸、減少CPU利用率和減少資源競爭。為了便於讀者閱讀和理解,筆者參閱了Sybase、Informix和Oracle等大型資料庫系統參考資料,基於多年的工程實踐經驗,從基本表設計、擴充套件設計和資料庫表物件放置等角度進行討論,

mysql資料庫mysql: [ERROR] unknown option '--skip-grant-tables'

mysql資料庫報ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) 看到網上說要配置my.ini 我的是win10系統,用的是mysql-5.7.18-win

面試官:你經歷過資料庫遷移麼?哪些注意點和難點?

前言 最近寫了很多資料庫相關的文章,大家基本上對資料庫也有了很多的瞭解,資料庫本身有所瞭解了,我們是不是應該回歸業務本身呢? 大家去了解過自己企業資料庫的部署方式麼?是怎麼部署的,又是部署在哪裡的?部署過程中可能會出現的問題有哪些? 是主從?還是雙主?有沒有分庫?大的表做了分表沒?等等...部署方式大概率也都

自學美工設計哪些步驟?零基礎難不難學會?

網上 flash 花瓣 lis 還需要 深入 打魚 開始學習 提高自己 最近有個打算入行淘寶美工的小夥伴咨詢小編,他的情況大致如下:他正在自學淘寶美工,剛開始想著,先買一些書看看吧,淘寶美工無非就是學個ps,然後自己摸索大半年依舊沒有什麽效果,從而覺得零基礎自學很難,很難堅

MySQL資料庫的引擎哪些?區別是什麼?

MySQL資料庫有多種儲存引擎:比如:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE等等,最常見的也就是MyISAM和InnoDB了,下面主要講

RDS for MySQL哪些限制

創建數據庫 哪些 mil 裝載 不支持 表格 mem 微軟 html 原文來自:https://help.aliyun.com/knowledge_detail/41834.html 1、不支持在命令行創建數據庫和數據庫賬號。只支持在RDS管理控制臺操作。 2、不支持Mem

MySQL哪些日誌?分別都代表什麽?

mysql日誌MySQL日誌:主要包含:錯誤日誌、查詢日誌、慢查詢日誌、事務日誌、二進制日誌、中繼日誌;日誌是mysql數據庫的重要組成部分。日誌文件中記錄著mysql數據庫運行期間發生的變化;也就是說用來記錄mysql數據庫的客戶端連接狀況、SQL語句的執行情況和錯誤信息等。當數據庫遭到意外的損壞時,可以通

數據庫操作對比:Sql Server與MYSQL相比哪些建站優勢?

ASP PHP IT SQL MYSQL 最近一直在做博客網站,從定位主題到程序和數據庫的選擇,確實廢了不少心思,經過細致的思考,最終將主題定位為讀書方面,還有文學和學習筆記,但是對於程序和數據庫問題,我一直就比較費心,因為個人是個技術小白,因此在這方面有些難題要解決。 第一個難題:博客程

MySQL索引哪些種類?MySQL數據庫學習

需要 pac mysql數據庫 種類 nor 主鍵索引 text ext 插入 MySQL索引的種類及原理: 1 普通索引 最基本的索引 沒有任何限制 2 唯一索引 索引列的值必須唯一 但允許有空值 3 主鍵索引 不僅唯一而且不允許與空值

Mysql資料庫如何檢視某張表table被哪些儲存過程procedure使用過

一、摘要 由於程式碼重構,修改了表結構,開發人員修改完java後臺程式碼並內測沒問題後提交業務部門測試時發現,新客戶取不到產品價格,原因是儲存過程呼叫的還是舊資料表。為此,需要先找出哪些儲存過程使用了這些表,然後修改。那麼問題來了,mysql資料庫如何檢視哪些儲存過程使用了這些資料表呢?

mysql資料庫如何定位分析哪些sql語句查詢比較慢

查詢執行語句比較慢的設定方法: show full processlist;  show variables  like '%query%';   //檢視query相關的引數設定 set global long_query_time = 2; &nbs