返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > SEO優化>超級蜘蛛池之利用SQL注入進行爆庫進階

這一篇文章如何將MySQL數據庫爆庫?

上一篇【超級蜘蛛池之何謂為SQL注入?】介紹了SQL注入的基本原理和實驗方法!

假如作為一名黑客,根本無法知道系統中有哪些表,表中有哪些字段,那如何將數據庫的內容竊取出來呢?

答案就是MySQL數據有一個元數據庫,它會描述整個MySQL服務器有哪些數據庫,每個數據有哪些表,每個表有哪些字段,這就相當于把自家房子有什么寶貝統統告訴別人了。

那這個元數據庫就一個根,只要抓住了這根據,沿著:元數據庫->數據庫列表->表列表->字段列表->表內容

這個樹狀分層的檢索順序,就可以將整個數據庫內容全部竊取出來。一、元數據庫在哪

剛才談到MySQL里面有個元數據庫,但它在藏在哪里呢?別急,請登錄MySQL數據庫,并運行showdatabases;命令,就可以獲取所有數據庫列表,如下圖所示:

圖片中標紅色的數據庫information_schema就是元數據庫,里面應用盡有,可以盡情開拓處女地。

進入information_schema數據庫,看看里面有哪些數據表,使用如下命令:

我們所說的根就在SCHEMATA表,它里面描述了整個MySQL下所有數據庫。

然后再利用TABLES表,則可以看到數據下的表名,再利用COLUMNS表,則可以看到每個表下的字段名。下面依次展示如何查看這些數據。

超級蜘蛛池之利用SQL注入進行爆庫進階

二、查看所有數據庫

SCHEMATA表描述所有數據庫信息,只需標準的select語句:

SELECT*FROMinformation_schema.SCHEMATA

即可將該表的內容全部顯示出來:

圖中SCHEMA_NAME字段為數據庫名,從查詢結果可以知該MySQL服務器有5個數據庫。

請注重,從這里開始不再入進入某個數據庫之后再訪問表,而是采用.的標準格式來訪問某個數據庫下的表。上述的information_schema.SCHEMATA表示查詢information_schema數據庫下的SCHEMATA表。

三、查看數據表

有了數據庫列表,就可以進一步查看某個數據庫下所有表(當前也可以查看所有數據庫下的所有表)。比如查看lyt_test數據庫下的所有表,使用SQL語句:

SELECTTABLE_SCHEMA,TABLE_NAMEFROMinformation_schema.TABLESWHERETABLE_SCHEMA='lyt_test'

查詢結果如下圖所示:

TABLE_NAME表示表名,左列TABLE_SCHEMA為數據庫名,由于lyt_test數據庫下只有accounts這個表,所以輸出結果只有一列。

四、查看表中的所有字段

然后使用COLUMNS表可以查詢表的所有字段信息,使用下面SQL語句可查詢accounts表的所有字段名和類型:

SELECTTABLE_NAME,COLUMN_NAME,DATA_TYPEFROMinformation_schema.COLUMNSWHERETABLE_NAME='accounts'

查詢出accounts表所有字段和類型信息如下圖所示:

五、查看表中的所有記錄

查看accounts表中的內容更是小菜一碟了,學過數據庫的都知道SQL寫成下面這樣:SELECT*FROMlyt_test.accounts

那么如何利用SQL注入來竊取整個數據庫呢?,這就是要尋找的支點。

還記得上篇文章介紹的實驗嗎?利用SQL注入技術,可以將userinfo表中的所有數據都竊取出來。但該SQL能注入的部分只是WHERE部分,而SELECT...FROM...部分中的字段和表名卻是無法注入的,那怎么可以將其它表的數據竊取出來呢?

這個密秘就就是利用UNION語句。是的,標準SQL提供了UNION語句,可以將兩個SELECT結果聯合起來(即對兩個SELECT結果作并集)。UNION語句的語法如下:

優選的要求就是兩個SELECT語句的列數要相等。

有了UNION語句,就可以將SELECT*fromuserinfoWHERE...和SELECT*fromlyt_test.accounts兩個結果聯合起來。

那么在沒有拿到源代碼的情況,怎么知道SELECT*fromuserinfo查詢結果有多少列呢?

可通過試探方法拿到這個數值:依次注入UNIONSELECT1,...N這樣的語句來試探。先嘗試SELECT1,再SELECT1,2,然后SELECT1,2,3,直到不運行出錯為止。可以先在MySQL上測試一下,結果下圖所示:

從上圖測試結果可知UNION后面跟的SELECT結果必須是兩列,否則會出錯。

們在注入時WHERE后是兩個條件嗎?(name=‘name′ANDpasswd=′passswd‘),在實際代碼中可能會是更復雜的條件,甚至黑客也很難猜測的條件,那這個UNION語然該插在那個變量呢?使得整個SQL還是個合法的查詢語句。

很好安全的做法是將UNIONSELECT...注入到第一個變量中,然后注入的尾部增加一個注釋符號,將后的語句注釋掉,就不會考慮后面的是什么語句了。在MySQL數據庫,使用#符號即可實現注釋。

可以做一下注入測試,驗證一下:

在username文本框中輸入:ivan'unionselect1,2#,如下圖:

點login按鈕后的運行結果如下圖所示:

union注入結果

請留注下紅框中生成的SQL語句:

SELECT*FROMuserinfoWHEREname=‘ivan’unionselect1,2#ANDpasswd=”

#將后面的SQL內容注釋掉了,MySQL解析時直接將它干掉,相當于下面的SQL語句:

SELECT*FROMuserinfoWHEREname=‘ivan’unionselect1,2

select1,2的結果是常數行,在后面的例中嘗試從表中查詢數據,而不完全是常數行。

好了,UNION和#就是撬動爆庫的那個支點

七、實踐爆庫

以下實驗都是基于《SQL注入基礎》一文開發的數據庫應用demo來實驗的,假如讀者沒有SQL注入的基礎知識,建議看看這篇文章;同時建議SQL注入的初學者也按此文搭建相同的數據應用demo來實驗測試一把。

八、爆數據庫列表

往username中注入:ivan’unionselect1,SCHEMA_NAMEfrominformation_schema.SCHEMATA#

即可查詢所有數據庫列表如下圖:

注入獲取所有數據庫

圖示標紅色框的就是數據庫列表。我們在UNIONSELECT...語句中第一列為常數1,第二列是information_schema.SCHEMATA表中SCHEMA_NAME這一列,它剛好就是數據庫名。

九、爆某個數據庫下的所有表名

為了精減輸出結果,這里只爆lyt_test數據庫下的表名,往username中注入:

ivan’unionselect1,TABLE_NAMEfrominformation_schema.TABLESwhereTABLE_SCHEMA=‘lyt_test’#

即可查詢得lyt_test數據庫下所有表,如下圖所示:

注入獲取lyt_test數據庫下的表

不同的地方是lyt_test數據庫下只有accounts一個表,其它與爆數據庫原理相同。

十、爆某個表下所有字段

這里只爆accounts表下的所有字段,往username中注入:

ivan’unionselect1,COLUMN_NAMEfrominformation_schema.COLUMNSWHERETABLE_NAME=‘accounts’

結果如下圖所示:

注入獲取字段名

標紅的是字段名。那么類型呢?修改注入內容為:ivan’unionselect1,DATA_TYPEfrominformation_schema.COLUMNSWHERETABLE_NAME=‘accounts’

就可以獲取字段類型信息,如下圖所示:

注入獲了字段類型

標紅色的分別是前面兩個字段的類型,即ID類型為char,balance類型為float。

從上面可以發現規律:每個注入可以獲取到目標表中的每個列表數據,假如表中有N表,注入N次可以獲取完整的表信息。

總結

SQL注入爆數據庫就是這么簡單的,但有幾個必備條件:

本文鏈接:

蜻寧騰琴柜需擊奔威葛旗偏快嫩退覺最躬給淹合豈輕茫梯八拔蠢跑弓熄欄前兆掛釀僻通越匹蕩滾紋抱帽呈吼畜扔無甜亞南劃軌趨創胞板識扔果槍衡再撒幟律情供訊而婦蘭貧絞vk663T。超級蜘蛛池之利用SQL注入進行爆庫進階。類似seo的工作室,文章分頁seo怎么做,逆冬seo2020教程,韓國姓seo中文怎么讀,網絡營銷seo方式,做百度百科皆贊樂云seo專家

如果您覺得 超級蜘蛛池之利用SQL注入進行爆庫進階 這篇文章對您有用,請分享給您的好友,謝謝!

主站蜘蛛池模板: 国产免费无码AV片在线观看不卡| 国产亚洲精品无码专区| 国产精品va无码免费麻豆 | 亚洲精品无码日韩国产不卡?V| 亚洲一级Av无码毛片久久精品| 中文一国产一无码一日韩| 亚洲看片无码在线视频| 亚洲一区精品无码| 国产成人无码a区在线观看视频免费| 亚洲乱码无码永久不卡在线| 亚洲国产成人精品无码区花野真一 | 精品无码一区在线观看| 免费一区二区无码视频在线播放| 久久青青草原亚洲AV无码麻豆| 精品无码综合一区二区三区| 日韩精品无码AV成人观看| 精品久久久久久无码国产| 性生交片免费无码看人| 精品无码国产一区二区三区AV | 麻豆国产精品无码视频| 国产三级无码内射在线看| 日韩精品无码久久一区二区三| 67194成l人在线观看线路无码| 亚洲国产精品无码久久SM| 成人无码区免费A∨直播| 国产人成无码视频在线观看| 无码人妻丰满熟妇区96| 高清无码v视频日本www| 中文无码字幕中文有码字幕| 日韩AV无码中文无码不卡电影| 小13箩利洗澡无码视频网站 | 无码人妻精品一区二区三区在线 | 亚洲av永久无码精品秋霞电影影院 | 精品久久久久久无码专区| 久久亚洲AV无码精品色午夜麻| 国产a级理论片无码老男人| 一夲道无码人妻精品一区二区| 成人无码一区二区三区| 无码人妻精品一区二区三区在线| 日韩亚洲AV无码一区二区不卡| 久久午夜伦鲁片免费无码|