濮阳杆衣贸易有限公司

主頁 > 知識庫 > MySQL時(shí)間盲注的五種延時(shí)方法實(shí)現(xiàn)

MySQL時(shí)間盲注的五種延時(shí)方法實(shí)現(xiàn)

熱門標(biāo)簽:大豐地圖標(biāo)注app 催天下外呼系統(tǒng) 南太平洋地圖標(biāo)注 400電話變更申請 400電話辦理服務(wù)價(jià)格最實(shí)惠 北京金倫外呼系統(tǒng) 呂梁外呼系統(tǒng) html地圖標(biāo)注并導(dǎo)航 武漢電銷機(jī)器人電話

MySQL時(shí)間盲注五種延時(shí)方法 (PWNHUB 非預(yù)期解)

延時(shí)注入函數(shù)

五種:sleep(),benchmark(t,exp),笛卡爾積,GET_LOCK() RLIKE正則

sleep()

sleep(x)
select sleep(5);

benchmark() 重復(fù)執(zhí)行某表達(dá)式

 benchmark(t,exp)
     select benchmark(count,expr),是重復(fù)執(zhí)行count次expr表達(dá)式,使得處理時(shí)間很長,來產(chǎn)生延遲,
     比如select benchmark(1000000,encode("hello","good"));
     select benchmark( 5000000, md5( 'test' ));​

笛卡爾積

笛卡爾積(因?yàn)檫B接表是一個(gè)很耗時(shí)的操作)
     AxB=A和B中每個(gè)元素的組合所組成的集合,就是連接表
     SELECT count(*) FROM information_schema.columns A, information_schema.columns B, information_schema.tables C;
     select * from table_name A, table_name B
     select * from table_name A, table_name B,table_name C
     select count(*) from table_name A, table_name B,table_name C  表可以是同一張表

GET_LOCK() 加鎖

GET_LOCK(key,timeout) 需要兩個(gè)連接會話
RELEASE_LOCK(key) 鎖是否釋放,釋放了返回1
IS_FREE_LOCK(key) 返回當(dāng)前連接ID,表示名稱為'xxxx'的鎖正在被使用。
key 鎖的名字,timeout加鎖等待時(shí)間,時(shí)間內(nèi)未加鎖成功則事件回滾。get_lock 加鎖成功返回1,
這個(gè)鎖是應(yīng)用程序級別的,在不同的mysql會話之間使用,是名字鎖,不是鎖具體某個(gè)表名或字段,具體是鎖什么完全交給應(yīng)用程序。它是一種獨(dú)占鎖,意味著哪個(gè)會話持有這個(gè)鎖,其他會話嘗試拿這個(gè)鎖的時(shí)候都會失敗。
session A select get_lock('test',1);
session B select get_lock('test',5);
可以指定表也可以不指定
直到關(guān)閉連接會話結(jié)束,鎖才會釋放,但不像redis那樣加了鎖只要不主動釋放就一直有。
但是當(dāng)會話1 get_lock 后,未釋放。會話2 不get_lock 同一個(gè)key,或者就不get_lock,依然可以對數(shù)據(jù)進(jìn)行任何操作,所以加鎖只是說人為的主觀的想要讓某些操作同時(shí)只有一個(gè)連接能進(jìn)行操作,別的連接不調(diào)用get_lock加同一個(gè)鎖,那它不會受到任何影響,想干什么干什么。

session1

session2

get_lock:但是當(dāng)會話1 get_lock 后,未釋放。會話2 不get_lock 同一個(gè)key,或者就不get_lock,依然可以對數(shù)據(jù)進(jìn)行任何操作,所以加鎖只是說人為的主觀的想要讓某些操作同時(shí)只有一個(gè)連接能進(jìn)行操作,別的連接不調(diào)用get_lock加同一個(gè)鎖,那它不會受到任何影響,想干什么干什么。

session1

session2

優(yōu)缺點(diǎn)分析 (1)這種方式對于更新所有列比較有效,但是得把查詢的語句也放在鎖內(nèi)執(zhí)行; (2)這種方式當(dāng)客戶端無故斷線了會自動釋放鎖,比較好,不像redis鎖那樣,如果加完鎖斷了,那么鎖一直在; (3)這種方式是針對鎖內(nèi)的所有操作加鎖,并不針對特定表或特定行,所以使用了同一個(gè)Key的鎖但不同的操作都會共用一把鎖,會導(dǎo)致效率低下; (4)如果查詢語句放在鎖之前,則數(shù)據(jù)可能是舊的,更新之后會把查詢之后更新之前別的客戶端更新的數(shù)據(jù)覆蓋掉;

RLIKE REGEXP正則匹配

通過rpadrepeat構(gòu)造長字符串,加以計(jì)算量大的pattern,通過repeat的參數(shù)可以控制延時(shí)長短。 

select rpad('a',4999999,'a') RLIKE concat(repeat('(a.*)+',30),'b');

正則語法:
. : 匹配任意單個(gè)字符
* : 匹配0個(gè)或多個(gè)前一個(gè)得到的字符
[] : 匹配任意一個(gè)[]內(nèi)的字符,[ab]*可匹配空串、a、b、或者由任意個(gè)a和b組成的字符串。
^ : 匹配開頭,如^s匹配以s或者S開頭的字符串。
$ : 匹配結(jié)尾,如s$匹配以s結(jié)尾的字符串。
{n} : 匹配前一個(gè)字符反復(fù)n次。

RPAD(str,len,padstr)

用字符串 padstr對 str進(jìn)行右邊填補(bǔ)直至它的長度達(dá)到 len個(gè)字符長度,然后返回 str。如果 str的長度長于 len',那么它將被截除到 len個(gè)字符。

mysql> SELECT RPAD('hi',5,'?'); -> 'hi???'

repeat(str,times) 復(fù)制字符串times次

⭐️尋找新的延遲函數(shù)

 concat(rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a'),rpad(1,999999,'a')) RLIKE '(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+(a.*)+b'

以上代碼等同于 sleep(5)

到此這篇關(guān)于MySQL時(shí)間盲注的五種延時(shí)方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL 時(shí)間盲注 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL時(shí)間設(shè)置注意事項(xiàng)的深入總結(jié)
  • MySql查詢時(shí)間段的方法
  • mysql計(jì)算時(shí)間差函數(shù)
  • mysql 獲取昨天日期、今天日期、明天日期以及前一個(gè)小時(shí)和后一個(gè)小時(shí)的時(shí)間
  • MySQL timestamp自動更新時(shí)間分享
  • mysql中取系統(tǒng)當(dāng)前時(shí)間,當(dāng)前日期方便查詢判定的代碼
  • 詳解MySQL日期 字符串 時(shí)間戳互轉(zhuǎn)
  • 在php MYSQL中插入當(dāng)前時(shí)間

標(biāo)簽:麗水 龍巖 迪慶 無錫 自貢 南充 西寧 徐州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL時(shí)間盲注的五種延時(shí)方法實(shí)現(xiàn)》,本文關(guān)鍵詞  MySQL,時(shí)間,盲注,的,五種,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL時(shí)間盲注的五種延時(shí)方法實(shí)現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL時(shí)間盲注的五種延時(shí)方法實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    淳安县| 铜川市| 上虞市| 遵义县| 堆龙德庆县| 兴安盟| 荥阳市| 资源县| 黄梅县| 泸定县| 本溪| 安平县| 博湖县| 惠水县| 慈溪市| 沅陵县| 高雄县| 莱芜市| 岫岩| 临猗县| 古蔺县| 达拉特旗| 刚察县| 海淀区| 浦北县| 衡山县| 庄河市| 如东县| 齐河县| 抚顺市| 外汇| 保山市| 景德镇市| 阳东县| 南陵县| 班玛县| 中方县| 红安县| 本溪市| 乐业县| 分宜县|