常見WEB漏洞描述及修復建議(可收藏寫報告用)-句芒安全實驗室

注:以下內容部分摘自網絡,部分工作總結。

一、明文傳輸

漏洞描述:
用戶登錄過程中使用明文傳輸用戶登錄信息,若用戶遭受中間人攻擊時,攻擊者可直接獲取用戶密碼

修復建議:
1.用戶登錄信息時使用加密傳輸,如密碼在傳輸前使用安全的算法加密後傳輸,可採用的算法包括:不可逆hash算法加鹽(4位及以上隨機數,由服務器端產生);安全對稱加密算法,如AES(128、192、256位),且必須保證客戶端密鑰安全,不可被破解或讀出;非對稱加密算法,如RSA(不低於2048位)、SM2等。
2.使用https來保證傳輸的安全。

 

二、SQL注入

漏洞描述:

Web程序代碼中對於用戶提交的參數未做過濾就直接放到SQL語句中執行,導致參數中的特殊字符打破了SQL語句原有邏輯,攻擊者可以利用該漏洞執行任意SQL語句,如查詢數據、下載數據、寫入webshell、執行系統命令等

修復建議:

採用sql語句預編譯和綁定變量;對進入數據庫的特殊字符(’”<>&*;等)進行轉義處理,或編碼轉換;查詢語句使用數據庫提供的參數化查詢接口等。

 

三、跨站腳本攻擊(xss)

漏洞描述:
Web程序代碼中把用戶提交的參數未做過濾或過了不嚴就直接輸出到頁面,參數中的特殊字符打破了HTML頁面的原有邏輯,黑客可以利用該漏洞執行惡意HTML/JS代碼、構造蠕蟲傳播、篡改頁面實施釣魚攻擊、誘以及導用戶再次登錄,然後獲取其登錄憑證等。

修復建議:

對一些非法的參數,像<>、,",'等進行自動轉義,或者是強制的攔截並提示,過濾雙引號,分好,單引號,對字符進行HTML實體編碼操作

 

四、不安全HTTP方法

漏洞描述:

目標服務器啓用了不安全的傳輸方法,如PUT、TRACE、DELETE、MOVE等,

修復建議:

如無必要關閉不安全的傳輸方法,推薦只使用POST、GET方法

 

五、任意文件上傳

漏洞描述:

文件上傳漏洞通常由於網頁代碼中的文件上傳路徑變量過濾不嚴或webserver相關解析漏洞未修復而造成的,如果文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網站後門文件(webshell),進而遠程控制網站服務器。

修復建議:

1.嚴格限制可上傳的文件類型,前端和後端一起限制,後端可以進行擴展名檢測,重命名文件、MIME類型檢測以及限制上傳文件的大小。

2.對上傳文件內容進行嚴格校驗及安全掃描,防止上傳惡意腳本文件。

3.設置權限限制,禁止上傳目錄的執行權限。

4.嚴格限制上傳的文件路徑,將上傳的文件放在安全的路徑下,儘量放於webserver之外的遠程服務器等。

5.上傳文件重命名。

6.隱藏上傳文件路徑。

 

六、任意文件下載

漏洞描述:

攻擊者可通過此漏洞讀取服務器文件,例如獲取賬號密碼等敏感信息,對服務器的正常運行造成安全威脅。

修復建議:

1.對下載路徑進行過濾,如下載前對傳入的參數進行過濾,並且對下載文件類型進行檢查,是否是允許下載的類型,另外禁止使用回溯符../

2.限制目錄訪問權限

 

七、目錄遍歷

漏洞描述:

由於服務器端配置不當,開啓了目錄瀏覽,黑客可獲得服務器上的文件目錄結構,從而查看或下載敏感文件。

修復建議:

設置目錄訪問權限

 

八、未授權訪問

漏洞描述:

由於沒有對相關敏感頁面進行訪問權限的檢查,導致攻擊者無需登陸即可訪問,從而獲取敏感信息或進行未授權操作等。

修復建議:

對相關頁面進行嚴格的訪問權限的控制以及對訪問角色進行權限檢查

 

九、越權訪問

漏洞描述:

由於沒有對用戶訪問角色的權限進行嚴格的檢查及限制,導致當前賬號可對其他賬號進行相關操作,如查看、修改等。

修復建議:

對用戶訪問角色的權限進行嚴格的檢查及限。

 

十、應用程序錯誤信息泄露

漏洞描述:

攻擊者可通過特殊的攻擊向量,使web服務器出現500、404等相關錯誤,導致信息泄漏如絕對路徑、webserver版本、源代碼、sql語句等敏感信息,惡意攻擊者很有可能利用這些信息實施進一步的攻擊。

修復建議:

1.自定義錯誤頁面或歸一化錯誤頁面信息提示

2.修復錯誤代碼

 

十一、文件包含漏洞

漏洞描述:

本地文件包含是指程序代碼在處理包含文件的時候沒有嚴格控制。利用這個漏洞,攻擊者可以先把上傳的靜態文件,或網站日誌文件作爲代碼執行,或者包含遠程服務器上的惡意文件,進而獲取到服務器權限。

修復建議:

1.嚴格檢查變量是否已經初始化。

2.對所有輸入提交可能包含的文件地址,包括服務器本地文件及遠程文件,進行嚴格的檢查,參數中不允許出現…/之類的目錄跳轉符。

3.嚴格檢查include類的文件包含函數中的參數是否外界可控。

4.不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。

 

十二、.網站敏感壓縮文件泄露

漏洞描述:

誤將網站備份文件或是敏感信息文件存放在某個網站目錄下,外部攻擊者可通過暴力破解文件名等方法下載該備份文件,導致網站敏感信息泄露。

修復建議:

1.不要在網站目錄下存放網站備份文件或敏感信息的文件。

2.如需存放該類文件,請將文件名命名爲難以猜解的字符串。

 

十三、CRLF HTTP 頭部注入漏洞

漏洞描述:

CRLF 是“回車 + 換行”(\r\n)的簡稱。在 HTTP 協議中,HTTPHeader 與 HTTP Body 是用兩個 CRLF 符號進行分隔的,瀏覽器根據這兩個 CRLF 符號來獲取 HTTP 內容並顯示。因此,一旦攻擊者能夠控制 HTTP 消息頭中的字符,注入一些惡意的換行,就能注入一些會話 Cookie 或者 HTML 代碼。

修復建議:

過濾 \r 、\n 之類的換行符,避免輸入的數據污染到其他 HTTP 消息頭。

 

十四、URL 跳轉漏洞

漏洞描述:

Web 程序直接跳轉到參數中的 URL ,或頁面引入任意的開發者 URL,被攻擊者利用可實施釣魚攻擊等操作。

修復建議:

在控制頁面轉向的地方校驗傳入的URL是否爲可信域名。

 

十五、Crossdomain.xml 配置不當

漏洞描述:

網站根目錄下的 crossdomain.xml 文件指明瞭遠程 Flash 是否可以加載當前網站的資源( 圖片、網頁內容、Flash等)。如果配置不當,可能導致遭受跨站請求僞造(CSRF)攻擊。

修復建議:

對於不需要從外部加載資源的網站,在 crossdomain.xml 文件中更改allow-access-from的domain屬性爲域名白名單。

 

十六、敏感信息泄露

漏洞描述:

在頁面中或者返回的響應包中泄露了敏感信息,通過這些信息,攻擊者可進一步滲透。

修復建議:

1.如果是探針或測試頁面等無用的程序建議刪除,或者修改不易被猜到的名字。

2.禁用泄露敏感信息的頁面或應用。對相關敏感信息進行模糊化處理,在服務器端進行。

3.對服務器端返回的數據進行嚴格的檢查,滿足查詢數據與頁面顯示數據一致,切勿返回多餘數據。

4.屏蔽錯誤信息。

 

十七、weblogic SSRF服務器請求僞造

漏洞描述

目標存在weblogic SSRF服務器請求僞造漏洞。WebLogic是用於開發、集成、部署和管理大型分佈式Web應用、網絡應用和數據庫應用的Java應用服務器。SSRF(Server-Side Request Forgery:服務器端請求僞造) 是一種由攻擊者構造形成由服務端發起請求的一個安全漏洞。一般情況下,SSRF攻擊的目標是從外網無法訪問的內部系統。(正是因爲它是由服務端發起的,所以它能夠請求到與它相連而與外網隔離的內部系統)。Weblogic中間件默認帶有“UDDI 目錄瀏覽器”且爲未授權訪問,通過該應用,可進行無回顯的SSRF請求。攻擊者可利用該漏洞對企業內網進行大規模掃描,瞭解內網結構,並可能結合內網漏洞直接獲取服務器權限。

修復建議:

1.刪除uddiexplorer文件夾

2.限制uddiexplorer應用只能內網訪問

 

十八、IIS短文件名泄露漏洞

漏洞描述:

Internet Information Services(IIS,互聯網信息服務)是由微軟公司提供的基於運行 Microsoft Windows的互聯網基本服務。 Microsoft IIS在實現上存在文件枚舉漏洞,攻擊者可利用此漏洞枚舉網絡服務器根目錄中的文件。攻擊者可以利用“~”字符猜解或遍歷服務器中的文件名,或對IIS服務器中的.Net Framework進行拒絕服務攻擊。攻擊者可通過該漏洞嘗試獲取網站服務器下存放文件的文件名,達到獲取更多信息來入侵服務器的目的。

修復建議:

修改Windows配置,關閉短文件名功能。

 

十九、目標URL存在host頭攻擊漏洞

漏洞描述:

爲了方便的獲得網站域名,開發人員一般依賴於HTTP Host header,但是這個header是不可信賴的,如果應用程序沒有對host header值進行處理,就有可能造成惡意代碼的傳入。

修復建議:

1.web應用程序應該使用SERVER_NAME而不是host header。

2.在Apache和Nginx裏可以通過設置一個虛擬機來記錄所有的非法host header。在Nginx裏 還可以通過指定一個SERVER_NAME名單,Apache也可以通過指定一個SERVER_NAME名單 並開啓UseCanonicalName選項。

 

二十、登錄繞過漏洞

漏洞描述:

由於對登錄的賬號及口令校驗存在邏輯缺陷,或再次使用服務器端返回的相關參數作爲最終登錄憑證,導致可繞過登錄限制,如服務器返回一個flag參數作爲登錄是否成功的標準,但是由於代碼最後登錄是否成功是通過獲取這個flag參數來作爲最終的驗證,導致攻擊者通過修改flag參數即可繞過登錄的限制。

修復建議:

修改驗證邏輯,如是否登錄成功服務器端返回一個參數,但是到此就是最終驗證,不需要再對返回的參數進行使用並作爲登錄是否成功的最終判斷依據

 

二十一、短信/郵件轟炸

漏洞描述:

由於沒有對短信或者郵件發送次數進行限制,導致可無限次發送短信或郵件給用戶,從而造成短信轟炸,進而可能被大量用戶投訴,從而影響公司聲譽。

修復建議:

對發送短信或郵件的次數進行限制,如1分鐘只能發送1次短信或郵件,並且需要在服務器進行限制。

 

二十二、web服務測試頁面信息泄露

漏洞描述:

由於沒有刪除默認的且與業務無關的頁面,導致信息泄露,如:webserver版本信息、中間件類型及版本信息等,通過對這類信息的收集,攻擊者可制定具有針對性的攻擊計劃

修復建議:

刪除與業務無關的頁面,如果是必須需要使用的中間件管理頁面,建議對該頁面進行訪問權限的控制

 

二十三、不安全的提示信息

漏洞描述:

登陸處輸入不存在賬號提示賬號不存在,輸入存在賬號錯誤密碼提示密碼錯誤,攻擊者可根據提示信息爆破存在賬號

修復建議:

統一修改提示爲模糊提示,例如賬號或密碼錯誤

 

原文公衆號鏈接:https://mp.weixin.qq.com/s/S3t8ACle3bdJ7SQdWLF_iQ

也可微信搜索公衆號:句芒安全實驗室

公衆號回覆關鍵字:修復建議下載,即可免費獲取word及pdf版。

接下來會寫一個針對CS架構的系統滲透測試文章,喜歡的朋友可以點個關注,公衆號後面會長期維護。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章