激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

十二個常見的Web安全漏洞總結(jié)及防范措施

發(fā)布時間:2024-03-07 13:39:49 瀏覽量:134次

前言

本篇文章部分摘要自《OWASP Top 10 2017》。

OWASP,開放式Web應(yīng)用程序安全項目(Open Web Application Security Project)是一個組織,它提供有關(guān)計算機(jī)和互聯(lián)網(wǎng)應(yīng)用程序的公正、實際、有成本效益的信息。其目的是協(xié)助個人、企業(yè)和機(jī)構(gòu)來發(fā)現(xiàn)和使用可信賴軟件。

一、SQL注入

SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有判斷或過濾不嚴(yán),攻擊者可以在web應(yīng)用程序中事先定義好的查詢語句的結(jié)尾上添加額外的SQL語句,在管理員不知情的情況下實現(xiàn)非法操作,以此來實現(xiàn)欺騙數(shù)據(jù)庫服務(wù)器執(zhí)行非授權(quán)的任意查詢,從而進(jìn)一步得到相應(yīng)的數(shù)據(jù)信息。

示例:

比如我們使用的登錄接口:在登錄界面包括用戶名和密碼輸入框,以及提交按鈕,輸入用戶名和密碼,提交。

登錄時調(diào)用接口/user/login/ 加上參數(shù)username、password,首先連接數(shù)據(jù)庫,然后后臺對請求參數(shù)中攜帶的用戶名、密碼進(jìn)行參數(shù)校驗,即sql的查詢過程。假設(shè)正確的用戶名和密碼為ls和123456,輸入正確的用戶名和密碼、提交,相當(dāng)于調(diào)用了以下的SQL語句。

SELECT * FROM user WHERE username = 'ls' AND password = '123456'

1

sql中會將#及–以后的字符串當(dāng)做注釋處理,如果我們使用“’ or 1=1 #” 作為用戶名參數(shù),那么服務(wù)端構(gòu)建的sql語句就如下:

select * from users where username='' or 1=1#' and password='123456'

1

#會忽略后面的語句,因此上面的sql也等價于:

select * from users where username='' or 1=1

1

1=1屬于常等型條件,因此這個sql便成為了如下,查詢出所有的登陸用戶。

select * from users

1

其實上面的sql注入只是在參數(shù)層面做了些手腳,如果是引入了一些功能性的sql那就更危險了,比如上面的登陸接口,如果用戶名使用這個“’ or 1=1;delete * from users; #”,那么在";"之后相當(dāng)于是另外一條新的sql,這個sql是刪除全表,是非常危險的操作,因此sql注入這種還是需要特別注意的。

防范措施:

嚴(yán)格限制web應(yīng)用的數(shù)據(jù)庫的操作權(quán)限,給用戶提供僅能滿足需求的最低權(quán)限,從而最大限度的減少注入攻擊對數(shù)據(jù)庫的危害。

嚴(yán)格限制變量的類型。

對進(jìn)入數(shù)據(jù)的特殊字符(‘ “ \ <> & *)進(jìn)行轉(zhuǎn)義處理(或編碼轉(zhuǎn)換)

不要直接拼接SQL語句,所有的查詢語句建議使用數(shù)據(jù)庫提供的參數(shù)化查詢接口,使用參數(shù)化的語句而不是將用戶輸入的變量嵌入SQL語句中。

在應(yīng)用發(fā)布之前建議使用專業(yè)的SQL注入檢測工具進(jìn)行檢測,及時修補(bǔ)被檢測出的SQL注入漏洞。

避免網(wǎng)站打印SQL錯誤信息,比如類型錯誤、字段不匹配等,可對異常信息做封裝,給出友好提示,不直接打印堆棧信息到前端。

二、失效的身份認(rèn)證

應(yīng)用中負(fù)責(zé)認(rèn)證和會話管理的部分沒有正確實現(xiàn),使得攻擊者得以泄露密碼,口令或令牌,進(jìn)而可能獲取其他用戶的身份。

漏洞成因:

允許自動化的攻擊,如憑據(jù)填充(credential stuffing,撞庫)攻擊。

允許暴力破解或其他自動攻擊。

允許默認(rèn),弱,廣為人知的密碼, 例 “admin/admin”。

使用弱,或無效的憑據(jù)恢復(fù)和忘記密碼策略。

使用明文,加密或弱hash的密碼。

使用損壞的或無效的多因子認(rèn)證。

在URL中暴露會話ID。

在成功登錄后沒有輪換會話ID。

沒有及時把會話ID,驗證令牌等信息無效化。

防范措施:

實現(xiàn)多因子認(rèn)證以組織自動化攻擊和憑據(jù)重用。

避免使用默認(rèn)密碼。

進(jìn)行弱密碼檢查。

對齊密碼長度,復(fù)雜度。

確保注冊,憑據(jù)恢復(fù)和API被加固以抵御賬戶枚舉攻擊。

限制或延遲失敗的登錄嘗試,并記錄所有失敗嘗試并在發(fā)動攻擊時報警。

使用服務(wù)端,安全,內(nèi)置的會話管理,確保對于每次登錄生成隨機(jī)會話ID。會話ID不應(yīng)該在URL中,且應(yīng)該及時銷毀。

三、敏感數(shù)據(jù)泄露

攻擊者不是直接攻擊密碼,而是在傳輸過程中或從客戶端(例如:瀏覽器)竊取密鑰、發(fā)起中間人攻擊,或從服務(wù)器端竊取明文數(shù)據(jù)。這通常需要手動攻擊。通過使用圖形處理單元(GPU),早前檢索的密碼數(shù)據(jù)庫可能被暴力破解。

防范措施:

對系統(tǒng)處理、存儲或傳輸?shù)臄?shù)據(jù)分類,并根據(jù)分類進(jìn)行訪問控制。

對于沒必要存放的、重要的敏感數(shù)據(jù),應(yīng)當(dāng)盡快清除,或者通過PCI DSS標(biāo)記或攔截。未存儲的數(shù)據(jù)不能被竊取。

確保存儲的所有敏感數(shù)據(jù)被加密。

確保使用了最新的、強(qiáng)大的標(biāo)準(zhǔn)算法或密碼、參數(shù)、協(xié)議和密匙,并且密鑰管理到位。

確保傳輸過程中的數(shù)據(jù)被加密,如:使用安全傳輸層協(xié)議(TLS)。確保數(shù)據(jù)加密被強(qiáng)制執(zhí)行,如:使用HTTP嚴(yán)格安全傳輸協(xié)議(HSTS )。

禁止緩存對包含敏感數(shù)據(jù)的響應(yīng)。

確保使用密碼專用算法存儲密碼,如:Argon2 、 scrypt 、bcrypt 或者PBKDF2 。將工作因素(延遲因素)設(shè)置在可接受范圍。

四、越權(quán)訪問

越權(quán)訪問(Broken Access Control,簡稱BAC)是Web應(yīng)用程序中一種常見的漏洞,由于其存在范圍廣、危害大,被OWASP列為Web應(yīng)用十大安全隱患的第二名。

該漏洞是指應(yīng)用在檢查授權(quán)時存在紕漏,使得攻擊者在獲得低權(quán)限用戶賬戶后,利用一些方式繞過權(quán)限檢查,訪問或者操作其他用戶或者更高權(quán)限。越權(quán)漏洞的成因主要是因為開發(fā)人員在對數(shù)據(jù)進(jìn)行增、刪、改、查詢時對客戶端請求的數(shù)據(jù)過分相信而遺漏了權(quán)限的判定。越權(quán)訪問漏洞主要分為水平越權(quán)訪問和垂直越權(quán)訪問

水平越權(quán)訪問漏洞

水平越權(quán)訪問是一種“基于數(shù)據(jù)的訪問控制”設(shè)計缺陷引起的漏洞。由于服務(wù)器端在接收到請求數(shù)據(jù)進(jìn)行操作時沒有判斷數(shù)據(jù)的所屬人/所屬部門而導(dǎo)致的越權(quán)數(shù)據(jù)訪問漏洞。

假設(shè)用戶A和用戶B屬于同一角色,擁有相同的權(quán)限等級,他們能獲取自己的私有數(shù)據(jù)(數(shù)據(jù)A和數(shù)據(jù)B),但如果系統(tǒng)只驗證了能訪問數(shù)據(jù)的角色,而沒有對數(shù)據(jù)做細(xì)分或者校驗,導(dǎo)致用戶A能訪問到用戶B的數(shù)據(jù)(數(shù)據(jù)B),那么用戶A訪問數(shù)據(jù)B的這種行為就叫做水平越權(quán)訪問。

垂直越權(quán)訪問漏洞

垂直越權(quán)是一種“基于URL的訪問控制”設(shè)計缺陷引起的漏洞,又叫做權(quán)限提升攻擊。

由于后臺應(yīng)用沒有做權(quán)限控制,或僅僅在菜單、按鈕上做了權(quán)限控制,導(dǎo)致惡意用戶只要猜測其他管理頁面的URL或者敏感的參數(shù)信息,就可以訪問或控制其他角色擁有的數(shù)據(jù)或頁面,達(dá)到權(quán)限提升的目的。

防范措施:

前后端同時對用戶輸入信息進(jìn)行校驗,雙重驗證機(jī)制

調(diào)用功能前驗證用戶是否有權(quán)限調(diào)用相關(guān)功能

執(zhí)行關(guān)鍵操作前必須驗證用戶身份,驗證用戶是否具備操作數(shù)據(jù)的權(quán)限

直接對象引用的加密資源ID,防止攻擊者枚舉ID,敏感數(shù)據(jù)特殊化處理

永遠(yuǎn)不要相信來自用戶的輸入,對于可控參數(shù)進(jìn)行嚴(yán)格的檢查與過濾

五、安全性錯誤配置

攻擊者能夠通過未修復(fù)的漏洞、訪問默認(rèn)賬戶、不再使用的頁面、未受保護(hù)的文件和目錄等來取得對系統(tǒng)的未授權(quán)的訪問或了解。

使用默認(rèn)賬戶和密碼、在應(yīng)用棧中任意一處沒有安全加固,云服務(wù)器授權(quán)沒有正確配置、應(yīng)用服務(wù)器,應(yīng)用框架,庫,數(shù)據(jù)庫中的安全設(shè)置沒有被設(shè)為安全值、服務(wù)器沒有發(fā)送安全頭或指令等都有可能造成安全性錯誤配置漏洞。

防范措施:

一個可以快速且易于部署在另一個鎖定環(huán)境的可重復(fù)的加固過程。開發(fā)、質(zhì)量保證和生產(chǎn)環(huán)境都應(yīng)該進(jìn)行相同配置,并且,在每個環(huán)境中使用不同的密碼。這個過程應(yīng)該是自動化的,以盡量減少安裝一個新安全環(huán)境的耗費(fèi)。

搭建最小化平臺,不包含任何非必須地特性,組件,文檔。

包管理工具中檢查并更新安全配置。

一個能在組件和用戶間提供有效的分離和安全性的分段應(yīng)用程序架構(gòu),包括:分段、容器化和云安組。

向客戶端發(fā)送安全指令,如:安全標(biāo)頭。

在所有環(huán)境中能夠進(jìn)行正確安全配置和設(shè)置的自動化過程。

六、XSS跨站腳本攻擊

XSS漏洞出現(xiàn)在當(dāng)web頁面包含不可信的數(shù)據(jù),卻沒有合適的驗證手段來找到它的時候。XSS使得攻擊者能夠在受害者的瀏覽器中執(zhí)行腳本,從而劫持會話,或重定向到惡意站點(diǎn)。

漏洞成因:

存在三種XSS類型,通常針對用戶的瀏覽器:

反射式XSS:應(yīng)用程序或API包括未經(jīng)驗證和未經(jīng)轉(zhuǎn)義的用戶輸入,作為HTML輸出的一部分。讓攻擊者在受害者的瀏覽器中執(zhí)行任意的HTML和JavaScript。例如惡意漏洞網(wǎng)站,廣告或類似內(nèi)容。

存儲式XSS:你的應(yīng)用或者API將未凈化的用戶輸入存儲下來了,并在后期在其他用戶或者管理員的頁展示出來。存儲型XSS一般被認(rèn)為是高?;驀?yán)重的風(fēng)險。

基于DOM的XSS:會動態(tài)的將攻擊者可控的內(nèi)容加入頁面的JavaScript框架、單頁面程序或API存在這種類型的漏洞。

防范措施:

防止XSS需要將不可信數(shù)據(jù)與動態(tài)的瀏覽器內(nèi)容區(qū)分開。這可以通過如下步驟實現(xiàn):

使用自動轉(zhuǎn)義XSS的框架,比如React JS。學(xué)習(xí)每種框架的XSS保護(hù),并手動處理用例沒有覆蓋到的部分。

轉(zhuǎn)義不可信的HTTP請求數(shù)據(jù)能夠解決反射型和存儲型XSS威脅。

在客戶端修改瀏覽器文檔時應(yīng)用內(nèi)容敏感的編碼以抵御DOM XSS?;蚴褂孟嗨频膬?nèi)容敏感轉(zhuǎn)義技術(shù)。

啟用CSP(Content Security Policy),這是一種對抗XSS的縱深防御彌補(bǔ)控制。

七、不安全的反序列化

反序列化最嚴(yán)重可導(dǎo)致遠(yuǎn)程代碼執(zhí)行(RCE,Remote Code Execution),但最常見的反序列化安全問題卻是通過修改序列化之后的數(shù)據(jù)字段,從而進(jìn)行提權(quán)或越權(quán)操作。

注:用戶登陸后,服務(wù)器將用戶身份信息存儲在瀏覽器cookie中

存儲于cookie中的這份數(shù)據(jù)的格式是應(yīng)用程序自定義的,但攻擊者通過探索嘗試后發(fā)現(xiàn),修改其中的某個字段就能將用戶從普通用戶修改為管理員。

存儲于cookie中的原始數(shù)據(jù):

Cookie: 3844998|AliceM|y|27|*NU*|active|null|201809

1

經(jīng)過修改后的數(shù)據(jù)

Cookie: 3844998|AliceM|y|27|*ADMIN*|active|null|201809

1

由于缺乏對數(shù)據(jù)完整性的校驗,服務(wù)器端在收到被修改過的這段數(shù)據(jù)后,就把當(dāng)前用戶當(dāng)作ADMIN用戶來處理了。

防范措施:

唯一的安全模式是不接受來自不可信的參與者的序列化對象。如果不得不接受,使用以下策略:

對任何序列化對象進(jìn)行完整性檢測,比如數(shù)字簽名以防止數(shù)據(jù)篡改或惡意對象。

在反序列化過程中強(qiáng)制嚴(yán)格的類型限制。

在低權(quán)限環(huán)境中獨(dú)立運(yùn)行反序列化代碼。

記錄反序列化異常和錯誤,比如收到的類型并不是期望的類型。

限制或監(jiān)管入的和出的來自反序列化的容器或服務(wù)器的網(wǎng)絡(luò)鏈接。

監(jiān)管反序列化,當(dāng)用戶一直反序列化時報警。

八、使用具有已知漏洞的組件

庫,框架等軟件組件和應(yīng)用有著相同的權(quán)限。如果存在有漏洞的組件,那么攻擊就能夠?qū)е聰?shù)據(jù)泄露甚至控制服務(wù)器。組件中的漏洞會導(dǎo)致整個應(yīng)用和API安全性的下降。

漏洞成因:

管理員不知道使用的所有組件的版本,包括直接使用的和其依賴的組件。

軟件易受攻擊,不再支持,或是過時的。包括OS, web服務(wù)器,DBMS,APIs和所有組件,運(yùn)行時環(huán)境,庫。

沒有周期性掃描漏洞,沒有關(guān)注所使用組件的安全公告。

沒有及時修復(fù)或升級平臺,框架,依賴。

軟件開發(fā)者沒有測試升級,更新,補(bǔ)丁的兼容性。

防范措施:

移除不使用的依賴、不需要的功能、組件、文件和文檔。

利用如 versions、DependencyCheck 、retire.js等工具來持續(xù)的記錄客戶端和服務(wù)器端以及它們的依賴庫的版本信息。持續(xù)監(jiān)控如CVE 和NVD等是否發(fā)布已使用組件的漏洞信息,可以使用軟件分析工具來自動完成此功能。訂閱關(guān)于使用組件安全漏洞的警告郵件。

僅從官方渠道安全的獲取組件,并使用簽名機(jī)制來降低組件被篡改或加入惡意漏洞的風(fēng)險。

監(jiān)控那些不再維護(hù)或者不發(fā)布安全補(bǔ)丁的庫和組件。如果不能打補(bǔ)丁,可以考慮部署虛擬補(bǔ)丁來監(jiān)控、檢測或保護(hù)。

九、不足的日志記錄和監(jiān)控

日志和監(jiān)控不足,再加上缺失或無效的事件響應(yīng),允許攻擊者進(jìn)一步攻擊系統(tǒng),他可以轉(zhuǎn)向更多系統(tǒng),進(jìn)行篡改,提取,銷毀數(shù)據(jù)。大部分研究表明違反往往會在超過200天后才被檢測出來,而且還是由外部參與者檢測到的。

漏洞成因:

未記錄可審計性事件,如:登錄、登錄失敗和高額交易。

告警和錯誤事件未能產(chǎn)生或產(chǎn)生不足的和不清晰的日志信息。

沒有利用應(yīng)用系統(tǒng)和API的日志信息來監(jiān)控可疑活動。

日志信息僅在本地存儲。

沒有定義合理的告警閾值和制定響應(yīng)處理流程。

滲透測試和使用DAST工具(如:OWASP ZAP)掃描沒有觸發(fā)告警。

對于實時或準(zhǔn)實時的攻擊,應(yīng)用程序無法檢測、處理和告警。

防范措施:

確保登錄,訪問控制失敗,服務(wù)斷輸入驗證失敗等事件會被日志記錄,同時記錄足夠多的用戶上下文以確定可疑賬號。保存足夠長的時間以用于分析。

確保日志以一定格式生成,便于日志管理。

確保高額轉(zhuǎn)賬帶有審計跟蹤和完整性控制以避免篡改或刪除。

建立有效的監(jiān)管和報警機(jī)制,使得可疑活動被及時檢測和響應(yīng)。

建立事件響應(yīng)和恢復(fù)計劃。

十、CSRF跨站請求偽造

簡單地說,是攻擊者通過一些技術(shù)手段欺騙用戶的瀏覽器去訪問一個自己曾經(jīng)認(rèn)證過的網(wǎng)站并運(yùn)行一些操作(如發(fā)郵件,發(fā)消息,甚至財產(chǎn)操作如轉(zhuǎn)賬和購買商品)。由于瀏覽器曾經(jīng)認(rèn)證過,所以被訪問的網(wǎng)站會認(rèn)為是真正的用戶操作而去運(yùn)行。這利用了web中用戶身份驗證的一個漏洞:簡單的身份驗證只能保證請求發(fā)自某個用戶的瀏覽器,卻不能保證請求本身是用戶自愿發(fā)出的。

防范措施:

在表單中添加一個隨機(jī)的數(shù)字或字母驗證碼,通過強(qiáng)制用戶和應(yīng)用進(jìn)行交互,來有效地遏制CSRF攻擊。

如果檢查發(fā)現(xiàn)是非正常頁面提交的請求(根據(jù)Referer進(jìn)行判斷),則極有可能是CSRF攻擊。

在請求的參數(shù)里增加一個隨機(jī)的token參數(shù),且不可被猜測。

敏感的操作應(yīng)該使用POST,而不是GET,以form表單的形式提交,可以避免token泄露。

十一、點(diǎn)擊劫持

點(diǎn)擊劫持 (Clickjacking) 技術(shù)又稱為界面?zhèn)窝b攻擊 (UI redress attack ),是一種視覺上的欺騙手段。攻擊者使用一個或多個透明的 iframe 覆蓋在一個正常的網(wǎng)頁上,然后誘使用戶在該網(wǎng)頁上進(jìn)行操作,當(dāng)用戶在不知情的情況下點(diǎn)擊透明的 iframe 頁面時,用戶的操作已經(jīng)被劫持到攻擊者事先設(shè)計好的惡意按鈕或鏈接上。攻擊者既可以通過點(diǎn)擊劫持設(shè)計一個獨(dú)立的惡意網(wǎng)站,執(zhí)行釣魚攻擊等

黑客創(chuàng)建一個網(wǎng)頁利用iframe包含目標(biāo)網(wǎng)站;

隱藏目標(biāo)網(wǎng)站,使用戶無法察覺到目標(biāo)網(wǎng)站存在;

構(gòu)造網(wǎng)頁,誘騙用戶點(diǎn)擊特定按鈕 (圖1中的PLAY!按鈕);

用戶在不知情的情況下點(diǎn)擊按鈕,觸發(fā)執(zhí)行惡意網(wǎng)頁的命令。

防范措施:

X-FRAME-OPTIONS是目前最可靠的方法。

X-FRAME-OPTIONS是微軟提出的一個http頭,專門用來防御利用iframe嵌套的點(diǎn)擊劫持攻擊。

并且在IE8、Firefox3.6、Chrome4以上的版本均能很好的支持。

這個頭有三個值:

DENY // 拒絕任何域加載

SAMEORIGIN // 允許同源域下加載

ALLOW-FROM // 可以定義允許frame加載的頁面地址


十二、任意文件上傳和讀取下載

1. 任意文件上傳

任意文件上傳(Unrestricted File Upload),是一種常見的web安全漏洞,由于web應(yīng)用程序在實現(xiàn)文件上傳功能是對上傳的文件缺少必要的檢查,使得攻擊者可上傳任意文件。利用該漏洞,攻擊者可以直接上傳webshell(webShell 就是以asp\php\jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,也可以將其稱之為一種網(wǎng)頁后門)、病毒、惡意腳本等各種危險文件,可能導(dǎo)致服務(wù)器權(quán)限被直接獲取,從而危及整個系統(tǒng)的安全運(yùn)行。

防范措施:

校驗文件格式,對上傳的文件后綴進(jìn)行判斷,如果是上傳頭像處,僅允許jpg、png、gif等圖片文件格式上傳,而且對圖片進(jìn)行二次渲染,防止黑客利用解析漏洞來getshell。

校驗文件大小,限制過大文件上傳。

重命名上傳文件。

2. 任意文件讀取下載

由于業(yè)務(wù)需求,往往需要提供文件查看或文件下載功能,但若對用戶查看或下載的文件不做限制,則惡意用戶就能夠查看或下載任意敏感文件,這就是文件查看與下載漏洞。

一般鏈接形式:

download.php?path=

down.php?file=

data.php?file=


防范措施:

過濾".",使用戶在url中不能回溯上級目錄

正則嚴(yán)格判斷用戶輸入?yún)?shù)的格式

php.ini配置open_basedir限定文件訪問范圍

設(shè)置白名單,即只能下載/訪問某個目錄下的文件,權(quán)限給到最低

參考資料

OWASP Top 10 2017:https://owasp.org/www-project-top-ten/

OWASP Top 10 2017(中文版):
https://wiki.owasp.org/images/d/dc/OWASP_Top_10_2017_%E4%B8%AD%E6%96%87%E7%89%88v1.3.pdf

————————————————

版權(quán)聲明:本文為CSDN博主「chenlijian」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:
https://blog.csdn.net/chenlijian/article/details/115006677

熱門課程推薦

熱門資訊

請綁定手機(jī)號

x

同學(xué)您好!

您已成功報名0元試學(xué)活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定