A. 滲透專題丨web Top10 漏洞簡述(1)
web程序中對於用戶提交參數沒有過濾直接放到SQL語句中執行,打破了SQL語句邏輯,獲取信息,執行命令等。
預防手段包括:
- 減少網站顯示SQL錯誤信息,防止黑客獲取相關信息。
- 限制用戶對於資料庫的操作許可權。
- 對進入資料庫的特殊字元進行轉義處理或者編碼轉換。
- 網站數據層進行編碼統一。
- 使用參數化查詢介面。
- 限制用戶輸入長度。
- 確定資料庫中數據類型。
SQL注入原理包括:
- 從前端傳給後端的參數內容是用戶可以控制的。
- 傳入的參數是可以拼接到SQL語句中執行。
常規思路為:
- 手工或工具找到注入點。
- 通過注入點獲取資料庫信息。
- 猜測資料庫表重要欄位和內容。
- 通過獲取信息進行登錄。
手工注入思路包括:
- 判斷是否存在注入,注入是字元型還是數字型。
- 猜解SQL查詢語句中的欄位數。
- 確定顯示的欄位順序。
- 獲取當前資料庫。
- 獲取資料庫中的表。
- 獲取表中的欄位名。
- 查詢到賬戶的數據。
SQL花式注入手段有:
- 延遲注入:通過「and sleep(10)」讓資料庫延時10秒返回,判斷是否存在SQL時間注入。
- 堆疊注入:使用分號隔開多條SQL語句,構造攻擊語句,實現增刪改查。
- 二次注入攻擊:在第一次插入臟數據後,未進行進一步檢查,導致下一次查詢時形成二次注入。
- 寬位元組注入:開啟gpc過濾特殊字元,但資料庫編碼錯誤,導致注入繞過。
- base64編碼注入:通過編碼繞過gpc注入攔截,解碼後執行SQL攻擊。
SQL繞過技術包括:
- 空格字元繞過:使用Tab、%a0、%09-%%0d等替代。
- 大小寫繞過:設置字元串為大小寫不敏感。
- 浮點數繞過注入:利用浮點數繞過SQL限制。
- NULL值繞過:使用NULL值繞過限制。
- 引號繞過:使用雙引號代替單引號。
- 添加庫名繞過:繞過庫名限制。
- 去重復繞過:使用distinct去除重復值。
- 反引號繞過:繞過某些waf規則。
- 雙關鍵詞繞過:繞過轉空關鍵詞。
- 二次編碼繞過:繞過二次編碼解析。
文件上傳漏洞簡述:允許用戶上傳可執行動態腳本文件,如頭像、OA辦公文件等。
文件上傳過程:驗證文件、判斷錯誤、顯示信息。
預防方法:
- 許可權認證。
- 禁止腳本執行。
- 設置上傳白名單。
- 限制上傳後綴名。
攻擊方法:通過上傳惡意文件突破限制。
預防措施:伺服器端使用白名單防禦,修復中間件漏洞,禁止可控參數,禁止腳本執行,限制後綴名,文件名隨機。
XSS漏洞簡介:惡意腳本植入到web網站中,用戶訪問時觸發攻擊。
危害包括:帳號盜取、控制企業數據、資料盜竊、非法轉賬、電子郵件強制發送、網站掛馬、控制攻擊。
XSS漏洞類型有:
- 反射型XSS:非持久化,需要用戶點擊鏈接觸發。
- 存儲型XSS:持久化,代碼存儲在資料庫。
- DOM型XSS:基於DOM文檔對象模型的反射型XSS。
XSS編碼繞過方法有:
- 過濾特殊字元。
- 過濾alert函數。
- 使用ASCII編碼。
- URL編碼。
- Base64編碼。