PHP搜尋性注入

2021-12-29 20:55:04 字數 1527 閱讀 4170

我們先看一段有漏洞的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:inetpubwwwrootshell.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進製制來代替字元。例如:在瀏覽器裡輸入http://localhost/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=』』被注釋掉了,我們順利進入後台。

Sphinx 搜尋效能優化

mysql sphinx及許多資料庫和搜尋引擎中的查詢是單執行緒的。比如說,在一台32個cpu核心 16個磁碟的r910伺服器上執行乙個查詢,它最多隻會用到乙個核心和乙個磁碟。沒錯,只會使用乙個。如果查詢是cpu密集型作業,那麼會使用大約3 的整機cpu能力 以上述32核機器為例 如果是磁碟密集型,...

SQL注入 搜尋型注入

語句如下 select from database.table where users like 要查詢的關鍵字 這裡 匹配任何字元,like 的意思就是像。比如我們在搜尋框輸入關鍵字 李 那麼sql語句就變成了select from database.table where users like ...

php搜尋引擎中sql注入問題

請輸入名字1 admin 請輸入名字 1 admin 2 guest 加入有100萬條資料,就相當於攻擊 請輸入名字 keyword request username conn mysql connect localhost root root if conn mysql select db spd...