簡述Php指令碼注入技術

2022-09-23 15:54:14 字數 1888 閱讀 8014

php的環境一般是apache+php+mysql,平常配置伺服器一般是開啟php.ini裡的安全模式,將safe_mode設為on,還有就是將display_erors設為off,即關閉錯誤顯示。還有乙個非常重要的配置選項-----magic_quotes_gpc,高版本預設為on,以前的版本中預設為off。當magic_quotes_gpc為on的時候我們怎麼防範php的字元變數注入呢?其實只需將提交的變數中的所有單引號、雙引號、反斜線和空字告符自動轉換為含有反斜線的轉義字元。如把「』」變成「\」,把「\」變成「\\」,就ok了。下面我們分為對magic_quotes_gpc=off和magic_quotes_gpc=on的注入清況分析一下。 

我們先看一段有漏洞的php**,這段**是用來搜尋的。

從上面**中我們可以看出,是乙個搜尋表單,通過post提交資料,並進行select查詢,當然要分析這些漏洞我們得先掌握php語言和mysql語法。如果我們從表單中提交% 』 order by id #(#號在mysql中表示注釋,不執行後面的sql語句),或者用』 order by id #,帶入的sql語句就成了sele ct * from u ser wher e user name like 『% %』 orde r by id # orde r by usern ame 和 selec t * from users w here   username lik e 『%%』 order by id# order by use rnam e。這樣資料庫的內容會全部返回,列出所有使用者名稱,還有密碼等。當然還有update 語句注入攻擊、insert語句注入攻擊等,最常用的是union語法注入,採用into outfile語句匯出php指令碼木馬。 

首先要清楚一些mysql語句,如mysql>select load_file(『c:/boot.ini』)我們可以檢視c盤下的boot.ini檔案內容,在有注入點的**後面加入該查詢語句就可以顯示出黑客們想獲得的敏感資訊,如檢視資料庫的連線檔案獲得資料庫帳號,檢視ect/password資訊等。select * from   table   into   outfile   "c:\\inetpub\\ wwwroot\\shell.php";也就是從表中匯出字串到c:\inetpub\wwwroot\shell.php中,通常黑客們在得到mysql帳號的情況下,利用create table rose(cmd text);建立乙個rose表,欄位cmd為text型別,然後用use   rose;開啟rose表,insert into rose values(" p hp eva l ( $ po s t[ c m d ]) ;?> ")加入一句話馬到字段裡。然後selec t * from rose in to outfile "c:\\inetpu b\\www ro ot\\shell. php ";將一句話木馬匯出為乙個shell.php檔案,當然這個shell.php中就包含<?php eval($ _po st[ cm d] ) ;?>,懂php的都知道這句會造成什麼後果,配合提交引數,是可以執行cmd命令和上傳 php木馬的。 

當magic_quotes_gpc=on時,提交變數中的所有單引號、雙引號、反斜線和空字元會自動轉換為含有反斜線的轉義字元,字元型的注入可以防範,但數字型沒有用到單引號,字元型注入也可以通過char()將引數解釋為整數,並返回由這些整數的ascii碼字元組成的乙個字串,也可以用16進製制來代替字元。例如:在瀏覽器裡輸入 /www/admin/login.php?username=char(114,111,115,101)%23

上面假設的我們知道的使用者名稱是rose,轉換成ascii後是char(114,111,115,101),%23是#號 

表注釋。那麼sql語句變成:select * from   example where username=char(114,111,115,101)# and password=』』,後面的and password=』』被注釋掉了,我們順利進入後台。

摘自:hans'blog

PHP注入技術

or 1 1 23 and password mypass id 1union select 1,1,1id 1union select char 97 char 97 char 97 id 1 union select 1,1,1from members id 1union select 1,1,...

pjax技術簡述

pjax是乙個jquery外掛程式,結合ajax和pushstate,能夠快速的實現頁面重新整理和url修改。頁面a鏈結和表單提交都能觸發pjax請求,伺服器返回請求的html片段,區域性替換頁面內容同時把url推送到歷史記錄中,有效降低了負載。一 實現基礎 1.在html4,histroy物件有下...

注入Hook技術 DLL注入

winnt win2000 winxp中的遠執行緒技術之一 dll注入 什麼是遠執行緒?我們知道用createthread可以在當前程序裡建立乙個執行緒,遠執行緒與此類似,只不過是在其他程序中建立乙個執行緒,用api函式createremotethread。這個遠執行緒建立後就與建立它的程序無關了,...