mysql注入
1、用戶權限查詢資料庫分類
- root用戶:最高權限用戶,可以查看所有資料庫,可跨庫查詢、注入
- 普通用戶:僅可查詢當前自己所屬的資料庫
2、跨庫注入
利用information_schema表特性,記錄庫名、表名、列名對應表,常常結合where table_name = ‘表名’ and table_schema = ‘資料庫名’、from mysql.admin類似這樣的限制條件,
3、檔案讀寫操作
3.1函式(mysql獨有)
load_file():讀取函式
mysql> select load_file('d:/123.txt');
into outfile或 into dumpfile:寫入函式
mysql> select '123' into outfile 'd:/123.txt';
注意:查看secure_file_priv 的存盤位置為D:\,所以讀取或寫入檔案只能在D盤進行,在其他盤會報錯,
mysql> show variables like '%secure%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_auth | OFF |
| secure_file_priv | D:\ |
+------------------+-------+
2 rows in set (0.00 sec)
4、獲取路徑常見方法
-
報錯顯示
在谷歌瀏覽器搜索:inurl:相關網址 warning,例如:inurl:edu.cn warning,找一些學校網站的報錯資訊
-
遺留檔案
同樣的,搜索:inurl:遺留檔案,例如:inurl:phpinfo.php
-
漏洞報錯
根據平臺的漏洞來獲取報錯資訊,通常在網址后面加上一些漏洞路徑,可以通過網上搜索平臺的漏洞
-
爆破(一般用不到)
5、繞過魔術引號
5.1什么是魔術引號:
當打開,所有的’(單引號),"(雙引號), \ (反斜線)和NULL 字符都會被自動加上一個反斜線進行轉義,
這和addslashes()作用完全相同,它其實是一種對防護mysql注入的防護機制
注意:本特性已自 PHP5.3.0起廢棄并將自PHP5.4.0起移除,
5.2魔術引號指令
- magic_quotes_gpc影響到HTTP請求資料(GET,POST和COOKIE),不能在運行時改變,
在PHP中默認值為on,參見get_magic_quotes_gpc(), - magic_quotes_runtime 如果打開的話,
大部份從外部來源取得資料并回傳的函式,
包括從資料庫和文本檔案,所回傳的資料都會被反斜線轉義,
該選項可在運行的時改變,在 PHP 中的默認值為 off,
參見 set_magic_quotes_runtime() 和 get_magic_quotes_runtime(), - magic_quotes_sybase 如果打開的話,將會使用單引號對單引號進行轉義而非反斜線,此選項會完全覆寫
magic_quotes_gpc,如果同時打開兩個選項的話,單引號將會被轉義成 ‘’,
而雙引號、反斜線 和 NULL 字符將不會進行轉義, 如何取得其值參見 ini_get(),
5.3為什么要用魔術引號
是為了阻止SQL 注入, 在今天,開發者能夠更好得意識到了安全問題,
并最終使用資料庫轉移機制或者 prepared 陳述句來取代魔術引號功能,
幫助了新手在不知不覺中寫出了更好(更安全)的代碼,
但是在處理代碼的時候,最好是更改你的代碼而不是依賴于魔術引號的開啟,
5.4為什么棄用魔術引號
- 可移植性:編程時認為其打開或并閉都會影響到移植性,可以用get_magic_quotes_gpc()來檢查是否打開,并據此編程,
- 性能 :由于并不是每一段被轉義的資料都要插入資料庫的,如果所有進入PHP的資料庫都被轉義的話,
那么會對程式的執行效率產生一定的影響,在運行時呼叫轉義函式(如 addslashes())更有效率,
盡管 php.ini-dist 默認打開了這個選項,但是 php.ini-recommended 默認卻關閉了它,主要是出于性能的考慮, - 不便 :由于不是所有資料都需要轉義,在不需要轉義的地方看到轉義的資料就很煩,
比如說通過表單發送郵件,結果看到一大堆的 ',針對這個問題,可以使用 stripslashes() 函式處理,
5.5關閉魔術引號
magic_quotes_gpc指令只能在系統級關閉,不能在運行時,也就是說不能用ini_set(),
在服務器端關閉魔術引號:
-
下面一個通過php.ini檔案把這些選項設為off,
-
如果不能修改服務器端的組態檔,使用.htaccess也可以,范例如下:
php_flag magic_quotes_gpc Off
5.6存在魔術引號時怎么繞過
通過工具進行編碼,其實就是對單引號、雙引號這些進行編碼,這樣魔術引號機制識別不出來單引號這些,就會失效,實作繞過,
6、WAF防護軟體
安全狗、寶塔等防護機制大部分基于過濾關鍵字,例如select等
WAF繞過:
- 更改提交方法
- 大小寫混合
- 解密編碼類
- 注釋符混用
- 等價函式替換
- 特殊符號混用
- 借助資料庫特性
- http引數污染
- 垃圾資料溢位
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/352117.html
標籤:其他
上一篇:硬刪macfee
下一篇:ARMV9 CCA 機密計算簡介
