欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年05月18日 15:10:17   作者:demopy  
MySQL時(shí)間盲注主要有五種,sleep(),benchmark(t,exp),笛卡爾積,GET_LOCK() RLIKE正則,本文就主要介紹了這五種方法,感興趣的可以了解一下

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

session1

session2

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

session1

session2

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

RLIKE REGEXP正則匹配

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

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

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

RPAD(str,len,padstr)

用字符串 padstr對(duì) str進(jìn)行右邊填補(bǔ)直至它的長(zhǎng)度達(dá)到 len個(gè)字符長(zhǎng)度,然后返回 str。如果 str的長(zhǎng)度長(zhǎng)于 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql中union和union?all的使用及注意事項(xiàng)

    mysql中union和union?all的使用及注意事項(xiàng)

    這篇文章主要給大家介紹了關(guān)于mysql中union和union?all的使用及注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 使用Canal和Kafka解決MySQL與緩存的數(shù)據(jù)一致性問(wèn)題

    使用Canal和Kafka解決MySQL與緩存的數(shù)據(jù)一致性問(wèn)題

    這篇文章主要介紹了使用Canal和Kafka解決MySQL與緩存的數(shù)據(jù)一致性問(wèn)題,文中通過(guò)圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • mysql如何刪除數(shù)據(jù)表和關(guān)聯(lián)的數(shù)據(jù)表刪除詳情

    mysql如何刪除數(shù)據(jù)表和關(guān)聯(lián)的數(shù)據(jù)表刪除詳情

    這篇文章主要介紹了mysql如何刪除數(shù)據(jù)表和關(guān)聯(lián)的數(shù)據(jù)表刪除詳情,刪除數(shù)據(jù)表的時(shí)候,表的定義和表中所有的數(shù)據(jù)均會(huì)被刪除。因此,在進(jìn)行刪除操作前,最好對(duì)表中的數(shù)據(jù)做一個(gè)備份,以免造成無(wú)法挽回的后果
    2022-07-07
  • MySQL系列之四 SQL語(yǔ)法

    MySQL系列之四 SQL語(yǔ)法

    SQL是一種特殊目的的編程語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),這篇文章主要給大家介紹了SQL語(yǔ)法的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • mysql 5.7.16 zip包安裝配置方法圖文教程

    mysql 5.7.16 zip包安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql 5.7.16 zip包安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • MySQL如何支撐起億級(jí)流量

    MySQL如何支撐起億級(jí)流量

    當(dāng)每天新增數(shù)據(jù)上億級(jí)的時(shí)候,單表數(shù)據(jù)量在百萬(wàn)級(jí)別,數(shù)據(jù)庫(kù)服務(wù)器的高峰期寫(xiě)入壓力、查詢壓力在都很高的時(shí)候,該如何讓MySQL順利支撐起來(lái)呢?本片文章將教給你詳細(xì)的方案
    2021-09-09
  • idea 設(shè)置MySql主鍵的實(shí)現(xiàn)步驟

    idea 設(shè)置MySql主鍵的實(shí)現(xiàn)步驟

    在IDE開(kāi)發(fā)工具中也是可以使用mysql的,本文主要介紹了idea 設(shè)置MySql主鍵的實(shí)現(xiàn)步驟,文中通過(guò)圖文的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 如何修改Xampp服務(wù)器上的mysql密碼(圖解)

    如何修改Xampp服務(wù)器上的mysql密碼(圖解)

    如果我們使用Xampp服務(wù)器自帶數(shù)據(jù)庫(kù)mysql,就必須先修改mysql的密碼,下面小編給大家分享如何修改Xampp服務(wù)器上的mysql密碼,需要的朋友參考下吧
    2017-04-04
  • MySQL配置了雙主,是如何避免出現(xiàn)數(shù)據(jù)回環(huán)沖突的

    MySQL配置了雙主,是如何避免出現(xiàn)數(shù)據(jù)回環(huán)沖突的

    這篇文章主要介紹了MySQL配置了雙主,是如何避免出現(xiàn)數(shù)據(jù)回環(huán)沖突的,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-01-01
  • Mysql桌面工具之SQLyog資源及激活使用方法告別黑白命令行

    Mysql桌面工具之SQLyog資源及激活使用方法告別黑白命令行

    這篇文章主要介紹了Mysql桌面工具之SQLyog資源及激活使用方法告別黑白命令行,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02

最新評(píng)論