Timing Attack 周邊感應sql

直接上硬菜。盲注的一段語句:函數

1170 UNION SELECT IF(SUBSTRING(current,1,1)) = CHAR(119) , BENCHMARK(5000000,ENCODE('MSG','by 5 seconds')),null) FROM (SELECT Database() as current) as tb1;加密

意思是想搞庫名。判斷庫名的第一個字母時否是w(CHAR(119))。若是爲真那就會經過BENCHMARK()函數形成較長延時,若是不爲真很快就執行完了。這樣遍歷全部的字母把庫名所有驗證完爲止。spa

看着都不熟悉了,挨着重新學一遍,加油。字符串

UNION 和UNION ALL做用:合併兩個或者多個select相同列結果集。只要保證列相同就行select

UNION:篩選去重合並。遍歷

UNION ALL:簡單粗暴的合併,顯示全部結果。二進制

eg:客戶端

SELECT User,Sex FROM usertab1 UNION SELECT User,Sex FROM usertab2;#結果總共條數12條,由於過濾了重複的查詢

SELECT User,Sex FROM usertab1 UNION ALL SELECT User,Sex FROM usertab2;#結果總共條數38條,簡單合併拼接tab

SUBSTRING做用:字符截取,SUBSTRING(被截取字段,截取開始位置,截取長度)

eg:

SELECT SUBSTRING(UserName,1,1) AS fristname,UserName FROM users;#fristname列查詢出UserName列中值的第一個字符

BENCHMARK做用:BENCHMARK(函數執行次數,表達式)

eg:

select BENCHMARK(1000000,MD5('8087878766d'));#結果爲0,時間: 0.321s,時間爲客戶端通過時間

ENCODE:扯出了一堆加密函數,ENCODE(str,key)   使用key做爲密鑰加密字符串str,調用ENCODE()的結果是一個二進制字符串,它以BLOB類型存儲

相關文章
相關標籤/搜索