日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
深入分析SQL字符串限制長度漏洞

MySQL字符串的限制長度看似重要性不要,其實(shí)和整個MySQL數(shù)據(jù)庫的安全性是息息相關(guān)的,很值得我們?nèi)ド钊胙芯糠治觥?/p>

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括如東網(wǎng)站建設(shè)、如東網(wǎng)站制作、如東網(wǎng)頁制作以及如東網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,如東網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到如東省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

SQL注入攻擊一直都在被廣泛的討論,然而人們卻忽略了今天我將要介紹的這兩個安全隱患,那就是超長SQL查詢和單列SQL字符長度限制可能會帶來的問題。

首先我們來談?wù)撘幌鲁LSQL查詢

max_packet_size
這個東西是用來限制mysql客戶端和服務(wù)器通信數(shù)據(jù)包的長度的,比如一個查詢?yōu)椤皊elect * from user where 1”,那么這個長度僅僅幾十個字節(jié),所以不會超標(biāo)。在絕大多情況下,我們很難會超過mysql的默認(rèn)限制1M(可以想象一下,1M的SQL語句還是很長的)。這里插一句,看到這篇文章之后,我終于清楚我當(dāng)初用PEAR DB 的INSERT插入數(shù)據(jù)失敗的原因了,很可能就是數(shù)據(jù)長度超標(biāo)。對于MySQL來說,如果查詢MySQL字符串的大小超過了這個限制,mysql將不會執(zhí)行任何查詢操作

如果訪問者有可能控制你的sql長度,那么你的程序可能會受到攻擊。哪些情況訪問者可能控制sql的長度呢,比如不限制關(guān)鍵字長度的搜索。還有可能就是你的程序如果要將用戶的登錄作為日志啟用,總之凡是涉及到超長sql查詢的地方,一定得小心檢查自己的sql,防止超長而查詢失效。不過說實(shí)在的,本人認(rèn)為這個問題倒不是多大,數(shù)據(jù)庫光里管理員也可以自行設(shè)置MySQL的max_packet_size的長度,或者在處理可能超長的SQL查詢的時候做一個長度判斷。

MySQL列長度限制
這個是本文的重點(diǎn)。MySQL對于插入的字符串,如果長度超過了數(shù)據(jù)表限制的長度,MySQL將會截取前面部分MySQL字符串插入數(shù)據(jù)庫中,而不會將錯誤報(bào)給web程序。對于粗心的程序員,這個問題可能會導(dǎo)致程序的漏洞,其實(shí)目前的wordpress有很多限制,通過這個漏洞攻擊應(yīng)該沒有任何作用。下面是原作者的幾個假設(shè),如果同時滿足這幾個條件,獲取一個站點(diǎn)的用戶名是相當(dāng)容易的事情,幸運(yùn)的是目前的wordpress并不太可能會同時滿足下面的條件:

該web應(yīng)用允許用戶注冊(開放注冊的wordpress滿足此條件);
超級管理員的用戶名已知的,比如admin,這樣方便攻擊者尋找目標(biāo)(可憐wordpress也滿足)
MySQL使用的是默認(rèn)的配置(估計(jì)大多數(shù)都滿足)
注冊新用戶的時候,程序沒有對用戶名的長度給予限制(我測試過,wordpress也滿足)
用戶名被限制在16個字符(這個和上面的沒有關(guān)系,僅僅是方便舉例)
下面我們來看看攻擊者是怎么攻擊的:

首先攻擊者用已知的超級管理員id如admin注冊,那么這個時候程序就會用

(show/hide)plain text
SELECT * FROM user WHERE username='admin '
來檢查該ID是否已經(jīng)存在,如果存在,這不允許注冊,當(dāng)然,攻擊者嘗試注冊admin肯定會失?。?/p>

但是如果攻擊者用 admin       X(admin和x之間有11個或以上的空格)來注冊呢,按照上面的判斷,由于admin     x不存在數(shù)據(jù)庫中,所以當(dāng)然就能注冊成功了,事實(shí)上wordpress2.6.1之前的版本確實(shí)可以這樣,由于列長度的限制在16個字符內(nèi),所以末尾的x就被截掉了,那么現(xiàn)在數(shù)據(jù)庫中就存在兩個一模一樣的用戶admin了。(旁白:糟糕,那我的程序不是都要去修改。其實(shí)沒有必要,你只要把ID設(shè)置為UNIQUE就可以了,于是乎,下面的問題就和你沒有關(guān)系了)

攻擊者繼續(xù),這個時候攻擊者就順利的注冊了admin這個用戶名,然后攻擊者用admin和自己的密碼登錄進(jìn)入賬戶管理(wordpress即使注冊了也無法登陸),由于真正的admin的帳號先于攻擊者admin注冊,所以在賬戶信息頁面,顯示的信息非常有可能就是真正admin的信息,包括密碼提示和email等,這個時候攻擊者就可以對admin的信息進(jìn)行任意修改,包括密碼和密碼找回。

所以,寫web程序的你,是不是該去檢查一下自己的程序是否有此類的漏洞呢。


網(wǎng)站欄目:深入分析SQL字符串限制長度漏洞
URL地址:http://www.5511xx.com/article/cdcecso.html