常見Web漏洞小結
1越權漏洞
不同權限賬戶之間的存在越權訪問
檢測
抓去a用戶功能鏈接,然后登錄b用戶對此鏈接進行訪問
抓去a用戶功能鏈接,修改id為b的id,查看是否能看b的相關資料
替換不同的cookie進行測驗查看
防范
1服務器端必須對每個頁面鏈接進行權限判斷,
2用戶登陸后,服務器端不應再以客戶端提交的用戶身份資訊為依據,而應以會話中服務端保存的已登陸的用戶身份資訊為準,
3頁面提交的資源標志與已登陸的用戶身份進行匹配比對,然后判斷其對當前鏈接是否有權限,
4必須在服務器端對每個請求URL進行鑒權,而不能僅僅通過客戶端的選單屏蔽或者按鈕Disable來限制,
2 SQL注入
后臺sql陳述句拼接了用戶的輸入,而且web應用程式對用戶輸入資料的合法性沒有判斷和過濾,前端傳入后端的引數是攻擊者可控的,攻擊者通過構造不同的sql陳述句來實作對資料庫的任意操作,
檢測
對注入點進行測驗,
單引號,雙引號–>報錯
And 1=1 and 1=2 ‘or ‘1’ = ‘1 ‘or ‘1’ = ‘2 兩次web服務器回應不同
時間延時 sleep(5) 延遲回應
Get post 引數、cookie引數、http請求頭
Sqlmap進行測驗
防范
(1)預編譯(PreparedStatement)(JSP)
SQL注入只對SQL陳述句的編譯程序有破壞作用,而PreparedStatement已經預編譯好了,執行階段只是把輸入串作為資料處理,而不再對SQL陳述句進行決議,因此也就避免了sql注入問題,
(2)PDO(PHP)
PDO對于解決SQL注入的原理也是基于預編譯,
(3)使用正則運算式過濾,對用戶輸入的資料進行嚴格的檢查,使用正則運算式對危險字串進行過濾,這種方法是基于黑名單的過濾
(4)使用 Web 應用防火墻
3 XSS
攻擊者在web頁面插入惡意的Script代碼,當用戶瀏覽訪問時,其中的script代碼會被執行,從而達到惡意攻擊,
檢測
查找可能出現xss跨站的位置,搜索框、資訊存盤等
常用測驗陳述句
查看原始碼,測驗陳述句是否在系統回應HTML代碼中輸出,
可以輸出的話進行xss測驗
防范
對用戶的輸入(和URL引數)進行過濾,對輸出進行html編碼;對用戶提交的所有內容進行過濾,對url中的引數進行過濾,過濾掉會導致腳本執行的相關內容;然后對動態輸出到頁面的內容進行html編碼,使腳本無法在瀏覽器中執行,
Httponly
4任意檔案上傳
攻擊者上傳web支持的動態腳本程式(asp,asp.net,php,jsp等)
Web程式對用戶上傳的型別不做檢測,或者被繞過
檢測
找到可以上傳的地方,上傳要求合理的合法檔案,查看上傳點是否可以使用,需要一些繞過姿勢(大小寫切換,00截斷,抓包改型別等等),上傳webshell,連刀,
防范
客戶端檢測:使用js對上傳圖片檢測,包括檔案大小,檔案擴展名,檔案型別等
服務端檢測:對檔案大小,檔案路徑,檔案擴展名,檔案型別,檔案內容檢測,對檔案重命名等,
服務器端上傳目錄設定不可執行權限,
檢查網站有沒有檔案決議漏洞和檔案包含漏洞,
將檔案上傳到單獨的檔案服務器,并且單獨設定檔案服務器的域名,
4.1任意檔案讀取/下載漏洞
檢測:
通過web漏洞掃描工具對網站實施掃描可能發現任意檔案讀取/下載漏洞,發送一系列”…/”字符來遍歷高層目錄,并且嘗試找到系統的組態檔或者系統中存在的敏感檔案,
也可通過判斷網站語言,并根據其url中部分提供的引數,進行構造相關的路徑資訊,如收集到網站中間件版本為apache,則想辦法構造…/…/…/ WEB-INF/web.xml等,然后查看其是否可被讀取或者下載出來,
有些WAF會過濾…/,可以構造 /.%252e/.%252e/.%252e/ , %25對應的是%,%2e對應的是.,所以 .%252e/ 對應的是 …/
防范
1對用戶傳過來的檔案名引數進行統一編碼,對檔案型別進行白名單控制,對包含惡意字符或者空字符的引數進行拒絕,
2更新其中間件的版本,可能是因為中間件的版本過低,
3 web應用程式可以使用chroot環境包含被訪問的web目錄,或者使用絕對路徑+引數來訪問檔案目錄,使其即使越權也在訪問目錄之內,
4用戶下載檔案之前需要進行權限判斷
5 用戶下載時需提交對應ID
6不允許提供目錄遍歷服務,
5目錄遍歷攻擊
網站存在配置缺陷,導致網站目錄可以被任意瀏覽,這會導致網站很多隱私檔案與目錄泄露,比如資料庫備份檔案、組態檔等,攻擊者利用該資訊可以為進一步入侵網站做準備,
檢測
爬行,或者暴力破解系統目錄結構,
在url后加常規目錄,看是否被列出來
可以利用web漏洞掃描器掃描web應用進行檢測,也可通過搜索,網站標題包含 “index of” 關鍵詞的網站進行訪問
防范
對用戶傳過來的引數名進行編碼,對檔案型別進行白名單控制,拒絕惡意字符或空字符,
IIS中關閉目錄瀏覽功能:在IIS的網站屬性中,勾去“目錄瀏覽”選項,重啟IIS,
Apache中關閉目錄瀏覽功能:打開Apache組態檔httpd.conf,查找“Options Indexes FollowSymLinks”,修改為“ Options -Indexes”(減號表示取消,保存退出,重啟Apache),
Nginx 中默認不會開啟目錄瀏覽功能,若您發現當前已開啟該功能,可以編輯nginx.conf檔案,洗掉如下兩行:autoindex on;autoindex_exact_size on,然后重啟Nginx,
6關鍵會話重放攻擊
不斷惡意或欺詐性地重復一個有效的資料包,重放攻擊者可以攔截并重復發該資料到服務端,服務器端未對用戶提交的資料包重放進行有效限制,
檢測
抓包抓取登錄請求,獲得用戶和密碼引數
密碼字典 暴力破解
防范
添加token、時間戳、圖片驗證碼
7 CSRF
攻擊者以用戶的身份完成操作達到各種目的
檢測
登錄網站,使用bp構造csrf poc 保存在html
發送到另一臺服務器,訪問html查看是否可以實作html功能
防范
驗證 http referer欄位,看其請求來源
在請求地址中添加token并驗證
在http頭中自定義屬性并驗證
8 明文傳輸
對系統用戶口令等機密資訊的保護不足,攻擊者利用攻擊工具,從網路上竊取合法用戶的口令資料,從而登錄系統執行非法操作,
檢測
使用工具抓取關于用戶的資料包
查看相關引數是否做加密處理
防范
對密碼資訊進行加密處理
使用加密演算法 不使用易破解的加密方式
9檔案包含
注入一段用戶能控制的腳本或代碼,并讓服務器端執行,對要包含的檔案變數名沒有進行檢測或初始化,
Include include_once require require_once
檢測
在檔案包含的地方,包含攻擊者的檔案進行測驗
防范
盡量不使用檔案包含
使用include,如include(‘test.php’)
包含檔案驗證–是否為白名單,白名單過濾
路徑限制,進制目錄跳轉字符
關閉 allow_url_include=On(遠程檔案包含)、allow_url_fopen=On(本地檔案包含)
10 業務邏輯漏洞
程式邏輯不嚴謹或太復雜,導致一些邏輯分支不能夠正常處理或處理錯誤,
檢測
一般在任意密碼修改(沒有密碼驗證),越權訪問,密碼找回,交易支付金額,進行抓包重放查看是否與邏輯不符合,
防范
業務流程需要有必要的控制引數,同時避免控制引數被繞過,
防止繞過流程節點和檢查參考(如token等)
不需要用戶操作或訪問的資料避免發送到客戶端(如驗證碼發送給客戶端)
驗證所有輸入(數字的邊界、正負值等)
防范資源消耗攻擊(如短信等)、拒絕服務攻擊(大規模資料查詢,如搜索通配符)等
11命令執行
用戶通過瀏覽器提交執行命令,由于服務器端沒有針對執行函式做過濾,攻擊者的輸入作為系統命令的引數拼接到命令列中,
檢測
在瀏覽器輸入 拼接&、 | 、|| (命令連接符)
防范
進行命令執行的函式或者方法之前,都引數進行過濾
引數的值盡量用引號包裹,并在拼接前呼叫addslashes進行轉義
禁止能執行系統命令的函式,可在php的組態檔中設定 disable_functions
12代碼執行
應用程式在呼叫一些能夠將字串轉換為代碼的函式時,沒有考慮用戶是否控制這個字串,將造成代碼執行漏洞,
檢測
原始碼,代碼審計
防范
保證用戶不能接觸eval()函式,使用正則嚴格判斷
字串使用單引號包裹,并在插入前進行 addslashes()
對preg_replace()放棄使用e修飾符,保證第二個引數中對于正則匹配出的物件,用單引號包裹,
13 SSRF
由攻擊者構造請求,有服務端發起請求的安全漏洞,本質是資訊泄露,
檢測
通過分享功能
轉碼服務
在線翻譯
圖片加載與下載
圖片文章收藏
關鍵字: share wap url link src source target u 3g display sourceURl imageURL domain
防御
限制請求的埠只能為web埠,只允許訪問http,https的請求(禁掉file協議)
限制不能訪問內網的ip,以防止對內網進行攻擊
屏蔽回傳的詳細資訊,
14XXE
在應用程式決議XML輸入時,XML檔案的決議依賴libxml 庫,而 libxml2.9 以前的版本默認支持并開啟了對外部物體的參考,服務端決議用戶提交的XML檔案時,未對XML檔案參考的外部物體(含外部一般物體和外部引數物體)做合適的處理,并且物體的URL支持 file:// 和 ftp:// 等協議,導致可加載惡意外部檔案 和 代碼,造成任意檔案讀取、命令執行、內網埠掃描、攻擊內網網站、發起Dos攻擊等危害,
檢測
通過手工篡改網站中xml物體中的頭部,加入相關的讀取檔案或者是鏈接,或者是命令執行等,如file:///$path/file.txt;http://url/file.txt;看看能否顯示出來
防范
XML決議庫在呼叫時嚴格禁止對外部物體的決議,
使用開發語言提供的禁用外部物體的方法
過濾用戶提交的XML資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/267483.html
標籤:其他
