簡單來說,注入往往是應用程式缺少對輸入進行安全型檢查所引起的,攻擊者把一些包含指令的資料傳送給直譯器,直譯器會把收到的資料轉換成指令執行。常見的注入包括sql注入,--os-shell,ldap(輕量目錄訪問協議),xpath(xpath即為xml路徑語言,它是一種用來確定xml(標準通用標記語言的子集)文件中某部分位置的語言),hql注入等。
危害如下:
注入可以導致資料丟失或被破壞,缺乏可審計性或拒絕服務。注入漏洞有時甚至可導致完全接管主機
如何防範:
1.使用安全的api,避免使用直譯器
2.對輸入的特殊的字元進行escape轉義處理
例子:like '%m%' escape 『m』
使用escape關鍵字定義了轉義字元「m」,告訴dbms將搜尋字串「%m%」中的第二個百分符(%)作為實際值,而不是萬用字元
3.使用白名單來規範化的輸入驗證方法
附:mysql注入方法
與認證和會話管理相關的應用程式功能往往得不到正確實施,導致了攻擊者可以破壞密碼,金鑰,會話令牌或實施漏洞冒充其他使用者身份
危害如下:
這些漏洞可能導致部分甚至全部賬戶遭受攻擊,一旦攻擊成功,攻擊者就能執行合法的任何操作
如何防範:
1.使用內建的會話管理功能
2.通過認證的問候
3.使用單一的入口點
4.確保在一開始登入ssl保護的網頁
跨站指令碼是最普遍的web應用安全漏洞。當應用程式在傳送給瀏覽器的頁面中包含使用者提供的資料,但沒有經過適當驗證和轉義,就會導致跨站
危害如下:
攻擊者在受害者瀏覽器中執行指令碼以劫持使用者會話,插入惡意內容,重定向使用者,使用惡意軟體劫持使用者瀏覽器等
種類:儲存型,反射型,dom型
如何防範:
1.驗證輸入
2.編碼輸出(用來確保輸入的字元被視為資料,而不是作為html被瀏覽器所解析)
意指乙個已經授權的使用者通過更改訪問時的乙個引數,從而訪問到原本其並沒有得到授權的物件
危害如下:
這種漏洞可以損壞引數所引用的所有資料
如何防範:
1.使用基於使用者或會話的間接物件訪問,這樣可防止攻擊者直接攻擊為授權資源
2.訪問檢查:對任何來自不受信源所使用的所有物件進行訪問控制檢查
3.避免在url或網頁中直接引用內部檔名或資料庫關鍵字
4.驗證使用者輸入和url請求,拒絕包含./ ../的請求
跨站請求偽造,利用了**允許攻擊者**特定操作所有細節這一特點。由於瀏覽器自動傳送會話cookie等認證憑證,導致攻擊者可以建立惡意的web頁面來產生偽造請求。這些偽造的請求很難和合法的請求區分開
危害如下:
攻擊者可以讓受害者使用者修改任何允許修改的資料,執行任何使用者允許的操作,例如修改密碼,登入登出等
如何防範:
1.給每個http請求新增乙個不可**的令牌,並保證該令牌對每個使用者會話來說是唯一的。
最好的辦法就是將獨有的令牌包含在隱藏欄位中,通過http請求傳送,避免在url中暴露出來
2.要求使用者重新認證或判斷他們是乙個真實德使用者
安全配置錯誤可以發生在乙個應用程式堆疊的任何層面,包括平台,web伺服器,應用伺服器,資料庫,架構和自定義的**。攻擊者通過訪問預設賬戶,未使用的網頁,未安裝的補丁的漏洞,未被保護的檔案和目錄等,以獲得對系統為授權的訪問
危害如下;
系統可能在未知的情況下被完全攻破,使用者資料可能隨著時間被全部盜走或篡改。甚至導致整個系統被完全破壞
如何防範:
1.自動化安裝部署
2.及時了解並部署每個環節的軟體更新和補丁資訊
3.實施漏洞掃瞄和安全審計
這個漏洞也是與認證相關的,這種漏洞具體是指在系統已經對url的訪問做了限制的情況下,但這種限制並沒有生效。常見的例子是系統沒有對使用者進行角色的檢查,以及使用者通過修改url的action並指向未被授權頁面就能訪問該頁面同樣是個漏洞
危害如下:
如何防範:
1.檢查管理許可權的過程並確保能夠容易進行公升級和審計
2.預設預設情況下,應該拒絕所有訪問的執行許可權。對於每個功能得訪問,需要明確的角色授權
3.檢查每個功能分配的許可權合理有效
在web應用中重定向是極為普通的,並且通常重定向所引發的目的是帶有使用者輸入引數的目的url,而如果這些重定向未被驗證,那麼攻擊者就可以引導使用者訪問他們想要使用者訪問的站點
同樣,**也是極為普遍的,本質上**是在同乙個應用中對乙個新頁面傳送請求,並且有時是用引數來定義目標頁面的。同樣,如果引數未被驗證,那麼攻擊者就可以利用其來繞過認證或是授權檢查
危害如下:
攻擊者通過重定向可以試圖安裝惡意軟體或誘使受害人洩露密碼等銘感資訊,通過**可以繞過訪問限制
如何防範:
1.避免使用重定向和**
2.如果使用了,不要在確定目標時涉及到使用者引數
3.如果無法避免使用使用者引數,則應確保目標引數值對於當前使用者是有效的並已授權
如果是需要登入的,可以從session當中獲取登入資訊,然後判斷
應用程式使用帶有已知漏洞的元件會破壞應用程式防禦系統,可能導致嚴重的資料丟失或伺服器接管
如何防範:
1.識別正在使用的元件和版本,包括所有的依賴
2.更新元件或引用的庫檔案到最新
3.建立安全策略來管理元件的使用
這個好像沒什麼可說的,就注重對敏感資料的保護即可
OWASP TOP 10簡單介紹
當不受信任的資料作為命令或查詢的一部分傳送到直譯器時,會發生注入漏洞,例如sql,nosql,os,ldap注入 輕量目錄訪問協議 xpath xpath即為xml路徑語言,它是一種用來確定xml 標準通用標記語言的子集 文件中某部分位置的語言 hql注入等。危害如下 注入可以導致資料丟失或被破壞,...
OWASPTOP10危害及其防範措施
top1 注入 簡單來說,注入往往是應用程式缺少對輸入進行安全型檢查所引起的,攻擊者把一些包含指令的資料傳送給直譯器,直譯器會把收到的資料轉換成指令執行。常見的注入包括sql注入,os shell,ldap 輕量目錄訪問協議 xpath xpath即為xml路徑語言,它是一種用來確定xml 標準通用...
邏輯漏洞的原理及分析
之前的文章都是寫的sql注入,命令執行,檔案上傳等一步到位的高危漏洞原理及防禦,接下來說一說邏輯漏洞,因為現在工具的大量使用,之前的那些主流漏洞,很難被輕易利用了,邏輯漏洞不一樣,工具不會思考,所以應用程式有邏輯缺陷,工具很難發現,需要人為去挖掘,接下來就簡單說一說,如何來進行邏輯漏洞的挖掘。web...