1.輸入引數id
修改id值,頁面無變化;提示為使用outfile
2.注入單引號
單引號觸發sql語法錯誤,但是沒返回什麼有用的資訊。
3.測試id引數閉合條件
注入兩個單引號
返回正常
注入id='1'
返回異常,綜合分析上面兩種情況
?id=1''
?id='1'
$id1''
'1'結果
正常正常
'$id'
'1'''
''1''
結果正常
錯誤從注入後的資料格式來看,id=1'' 和id='1' 應該都能正常執行而注入id='1'時頁面返回異常;id='1'''能正常執行,id=''1''將會產生錯誤,因為第一對閉合的單引號內是空的。所以單引號一定是id的閉合條件之一。
閉合單引號注入永真條件
返回錯誤,繼續測試id引數閉合條件
閉合括號,返回錯誤
閉合兩個括號,返回正常
為什麼想到括號而且還是兩個呢??不為什麼,猜的。傳入引數前後需要閉合的字元就那幾個,常用的就是單引號,雙引號和括號。
4.order by 爆列數
1,2,3均返回正常,當order by 4時返回錯誤
所以查詢的列數為3列
5.使用outfile寫檔案
寫檔案需要得到乙個當前使用者擁有相應許可權的資料夾的絕對路徑,這裡就作一下弊
了,畢竟靠手工盲注去爆乙個這樣的路徑對萌新也太不友好了
在靶機上拿乙個路徑
構造注入語句 ?id=')) union select 1,2,3 into outfile 'c:\\phpstudy_pro\\extensions\\mysql5.7.26\\data\\outfile.txt'--+
失敗,八成是許可權問題,靶機資料庫後台執行 show variables like "secure_file_priv";
值為null,null表示禁止寫入。
引數說明如下:
secure-file-priv引數是用來限制load data, select ... outfile, and load_file()傳到哪個指定目錄的。
ure_file_priv的值為null ,表示限制mysqld 不允許匯入|匯出
當secure_file_priv的值為/tmp/ ,表示限制mysqld 的匯入|匯出只能發生在/tmp/目錄下
當secure_file_priv的值沒有具體值時,表示不對mysqld 的匯入|匯出做限制
修改mysql配置檔案my.ini將secure_file_priv的值改為目標路徑(我這裡就是c:\phpstudy_pro\extensions\mysql5.7.26\data\)然後重啟mysql
再次注入寫檔案操作
還是報錯,但是實際上已經成功了,雖然可以通過讀出檔案寫入到乙個表中然後盲注來檢查,偷個懶直接在靶機看吧
這種情況下一般都可以注入一句話木馬,拿shell了。
where 1 1永真與永假
1 1 永真,1 1 永假。1 1 的用處 用於只取結構不取資料的場合 例如 create table table temp tablespace tbs temp as select from table ori where 1 1 建成乙個與table ori 結構相同的表table temp,...
真 乾貨 MySQL 索引及優化實戰
索引概念和作用 mysql 索引型別 唯一索引 與普通索引類似,不同的就是索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。主鍵索引 它是一種特殊的唯一索引,用於唯一標識資料表中的某一條記錄,不允許有空值,一般用 primary key 來約束。主鍵和聚集索引的關係詳見 問題詳...
真 win10完全解除安裝MySQL !!!
第一次安裝好後mysql後想從c盤移至d盤,於是手賤把c盤有關mysql的資料夾從c盤移至d盤,然後出錯了,改來改去沒改對,就想著重灌吧,就從控制面板把mysql卸掉了 莫得360 但令人意想不到的是,再安裝時又出現了種種錯誤,這兒有問題,那兒也有問題,但歸根到底是我的問題 mysql解除安裝有殘留...