當(dāng)在應(yīng)用程序中探查命令注入及其他缺陷時(shí),嘗試在受控制的數(shù)據(jù)插入相關(guān)字符后,戒指在每個(gè)字符前面插入一個(gè)反斜線,測試前面描述的邏輯缺陷。為防御跨點(diǎn)腳本的攻擊,許多應(yīng)用程序使用的反斜線對(duì)出現(xiàn)在用戶輸入中的引號(hào)進(jìn)行轉(zhuǎn)義。我們曾在各種WEB應(yīng)用程序中遇到這種邏輯,包括網(wǎng)絡(luò)入侵檢測產(chǎn)品使用的Web管理界面。下面創(chuàng)新互聯(lián)為大家介紹在WEB應(yīng)用程序中避免轉(zhuǎn)義的幾個(gè)要點(diǎn)。
1.功能
應(yīng)用程序的設(shè)計(jì)者決定執(zhí)行某種功能,該功能需要以自變量的形式向操作系統(tǒng)命令提交用戶控制的輸入。
重慶網(wǎng)站制作公司應(yīng)用程序的開發(fā)者知道這種操作包含著內(nèi)在的風(fēng)險(xiǎn)并決定凈化用戶輸入出現(xiàn)的任何潛在惡意字符,從而防御這種風(fēng)險(xiǎn),如下面的字符都需要使用反斜線(\)進(jìn)行轉(zhuǎn)義:
; | & < > '空格和換行符
以這種方式進(jìn)行轉(zhuǎn)義后,shell命令解釋器就把它們當(dāng)做提交給被調(diào)用命令的自變量的一部分,而非shell元字符。后者可用于注入其他命令或自變量、重定向輸出等。
2.假設(shè)
成都建站公司的開發(fā)者確信,它們設(shè)計(jì)的方法可有效防御命令注入攻擊。他們考慮了每一個(gè)可能被攻擊者利用的字符,并確保對(duì)它們進(jìn)行了適當(dāng)?shù)霓D(zhuǎn)義處理,因此而它們不會(huì)造成風(fēng)險(xiǎn)。
3.攻擊方法
開發(fā)者忘記了對(duì)轉(zhuǎn)義字符本身進(jìn)行轉(zhuǎn)義。通常,攻擊者在利用尖端命令注入漏洞時(shí)并不直接使用反斜線,因此開發(fā)者認(rèn)為它并不非惡意字符,然而,正是由于沒有對(duì)它進(jìn)行轉(zhuǎn)義,攻擊者就可以完全破壞應(yīng)用程序的凈化機(jī)制。
假設(shè)攻擊者向易受攻擊者的功能提交以下輸入:
foo\\;ls
如前所述,應(yīng)用程序?qū)ζ溥M(jìn)行適當(dāng)?shù)霓D(zhuǎn)義處理,因此攻擊者的輸入變成:
foo\\;ls
當(dāng)這個(gè)數(shù)據(jù)作為自變量提交操作系統(tǒng)命令時(shí),shell解釋把第一個(gè)反斜線作為轉(zhuǎn)義字符,而把第二個(gè)反斜線當(dāng)做字面量反斜線處理;反斜線不是一個(gè)轉(zhuǎn)義字符,而是自變量的一部分。然后它遇到分號(hào)字符,該字符明顯沒有進(jìn)行轉(zhuǎn)義。解釋把分號(hào)作為一個(gè)命令分隔符,因此繼續(xù)執(zhí)行攻擊者注入命令。
分享名稱:邏輯缺陷之避免轉(zhuǎn)義
轉(zhuǎn)載來于:http://www.rwnh.cn/news37/158987.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、域名注冊、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、建站公司、品牌網(wǎng)站設(shè)計(jì)
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)