香港站群服務器web如何防御邏輯錯誤漏洞和代碼注入
香港站群服務器web如何防御邏輯錯誤漏洞和代碼注入【艾娜】
一、邏輯錯誤漏洞
常見的邏輯漏洞:
1. 繞過授權驗證
(1)水平越權:相同級別(權限)的用戶或者同一角色的不同用戶之間,可以越權訪問、修改或者刪除的非法操作。
(2)垂直越權:不同級別或不同角色之間的越權。
2. 密碼找回邏輯漏洞
3. 支付邏輯漏洞
(1)商品數量為負數
(2)0元購買商品
4. 指定賬戶惡意攻擊
主要就是封鎖指定賬戶,圖取其他利益。
二、代碼注入
按照OWASP定義:在客戶端提交的代碼在服務器端接收后當作動態代碼或嵌入文件處理。
以下漏洞可以視為代碼注入:
(1)OS命令執行
(2)文件包含
(3)動態函數調用按照Wikipedia定義:客戶端所提交的數據未經檢查就讓Web服務器去執行,這個范圍比OWASP定義的代碼注入范圍要廣闊的多。
以下漏洞可以視為代碼注入:
(1)SQL注入
(2)XML注入
(3)XSS
(4)文件包含
(5)命令執行
(6)等。
1. XML注入
XML是 The Extensible Markup Language(可擴展標識語言)的簡寫。XML最初設計的目的是彌補HTML的不足,后來逐漸用于網絡數據的轉換和描述。XML的設計宗旨是傳輸數據,并非顯示數據。
XML注入是通過改寫XML實現的,與XSS跨站漏洞相似,此漏洞利用成功的關鍵點就是閉合XML標簽。
修復:只需要將預定義字符進行轉義即可。
2. XPath注入
XPath即為XML路徑語言,XPath基于XML的樹狀結構,提供在數據結構樹中尋找節點的能力。簡單的說,XPath就是選取XML節點的一門語言。
通過XPath注入攻擊,攻擊者可以攻擊XML,XPath與SQL注入的方式類似。//user[username/text()='admin' and password/text()='admin888' or 1=1]
筆者建議,對于一些敏感信息,不要使用XML傳輸,如果一定要使用XML,建議盡量使用密文傳輸。
XPath注入的預防是比較簡單的,沒有防御SQL注入那么復雜。最重要的是對預定義字符的轉換。
3. JSON注入
即就是在json中插入惡意字符,破壞json結構。
如:
正常為"password": "admin888"
,如果將password的值改為admin"888
,則結果為:"password": "admin"888"
。
防御:
只需要對其關鍵字符進行轉義即可:"password": "admin\\"888"
。
4. HTTP Parameter Pollution(http參數污染)
請求url上會有重復參數的時候。
根據不同的語言和環境,對于http參數的重復字段的值取得不一樣。
PHP取須后一項,Servlet取第一項。
http參數污染經常用來繞過一些Web應用防火墻(WAF)。簡單來說WAF在腳本還未接收到請求之前就開始對數據進行校驗,如果未發現惡意代碼,則交給腳本處理,如果發現惡意代碼,就進行攔截,不再交給腳本處理。
例如:
某個WAF防火墻模版定義數據中不允許出現select關鍵字,WAF取值驗證時可能會選擇第一項參數值,而腳本取值與WAF則不同,這樣就有可能繞過WAF的數據驗證。
PHP: News.php?id=1&id=select username, password from admin--
WAF取id值為1,而PHP取id值為select username, password from admin--
ASP.net: news.aspx?id=1;&id=s&id=e&id=c&id=t
而ASP.net將會把多個相同參數項的值連接在一起,這樣http參數污染就極有可能繞過某些WAF防火墻。
----------------------------
縱橫數據 美國站群服務器 香港站群服務器 歡迎聯系在線客服 QQ 4001886560 482986990