OWASP Vulnerabilities

OWASP(Open Web Application Security Project)

主要蒐集各種網頁安全漏洞,並歸納出攻擊弱點,資安問題,排名,防範措施等。

OWASP常提到的弱點包括:

  • Injection
  • XSS(Cross-Site Scripting)
  • CSRF(Cross Site Request Forgery,跨站冒名請求)
  • XXE(XML External Entity Injection,XML外部實體注入)
  • Insecure Deserialization(不安全的反序列化)
  • Broken Authentication(無效的身份認證)
  • Insecure Direct Object References(不安全的物件參考)
  • Security Misconfiguration (不當的安全組態設定)
  • Sensitive Data Exposure (敏感資料暴露)
  • Using Components with Known Vulnerabilities(使用已知漏洞元件)

 


Injection

各種注入攻擊,包括SQL injection , NoSQL injection, OS command injection, LDAP injection等
主要發生在惡意資料輸入時,沒有做好資料的檢查,所造成的弱點風險

command injection flaws

relay the malicious code through a web application to another system
手法同 SQL Injection,但透過命令列之執行(如 cmd.asp),最終可取得主機管理權限
因管理權限喪失,駭客可經由此受駭主機向內部其餘系統進行攻擊與資料竊取

countermeasures

  1. use language-specific libraries that avoid problems due to shell commands
  2. validate the data provided to prevent any malicious content
  3. structure requests so that all supplied parameters are treated as data,rather than potentialy executable content
  4. j2ee environments allow the use of the java sandbox,which can prevent the execution of system commands

 


XXE

以XML為基礎的網路應用程式沒有做好管控權限,直接讀取外部資源提供的 XML 檔案。

攻擊者提供惡意XML檔案讓系統讀取,就有可以進行文件的共享、監聽內部網路、執行遠端程式,進而導致資料外洩,或系統被駭客接管。

 


Insecure Deserialization

駭客將攻擊字串注入序列化的結構中,使得網站伺服器解析後出現非預期的結果,並執行駭客輸入的指令

 


Broken Authentication

常發生在脆弱的帳戶認證,或使用不安全的管理機制
ex: 登入未加密,Session無控管,Cookie無保護,…等

此問題會造成帳號身分盜用,或身分認證機制無效化,讓攻擊者可在伺服器做各種新增修改刪除查詢,並控制整個主機等。

 


Insecure Direct Object References

網站直接透過user的輸入來存取資源,這可讓攻擊者任意的存取重要檔案

ex:
程式碼有一段直接寫入到檔案
...omit…
echo writefile($_GET['file']);
...omit...

正常的情況下
http://xxxxx/report.php?file=2014report.txt
寫入到2014report.txt這個檔案

但惡意的使用會變成如下
http://xxxxx/report.php?file=index.html
寫入到index.html把首頁覆蓋?

 


Security Misconfiguration

網站安全沒有設定好
常見的問題有以下幾種:

default password

預設帳密沒有刪除或更改,攻擊者可透過嘗試不同預設帳密的方式直接入侵

directory traversal/forceful browsing

未關閉Directory listing功能或瀏覽權限沒設好
攻擊者可找出所有網站上的檔案,或得到你的原始碼
countermeasure:設定存取權限,修補漏洞

error message interception

錯誤訊息直接回傳在使用者頁面上,使攻擊者得到額外的資訊
透過瀏覽器錯誤的回傳值,可得知系統的架構與版本等資訊,藉以蒐集相關弱點資訊

 


Using Components with Known Vulnerabilities

網站使用有問題的第三方的元件或函式庫
有許多套件的範例程式有漏洞,若沒刪除這些範例程式,攻擊者可透過範例程式的漏洞入侵
countermeasures:隨時關心third-party module的最新版本並時常更新

 


Sensitive Data Exposure

常見的有以下

敏感資料未加密就儲存

若網站的資料庫被入侵時,將會直接洩漏出每個人的敏感資料,像帳密…等
countermeasures: 密碼須使用不可逆的演算法加密後再存在資料庫

cryptographic interception

網站在與使用者傳輸敏感資料時未使用SSL加密連線,導致傳輸有可能被攔截竊聽造成使用者的帳密被盜用
雖使用複雜的 SSL 加密,但駭客可透過檔案暫存時的疏忽取得未受保護的憑證資訊
客戶帳號、密碼與信用卡等機密外洩,並可計算出加密方式,竊取更多資訊
countermeasures:使用SSL安全連線來傳輸

 

refer
https://owasp.org/www-project-top-ten/
https://secbuzzer.co/post/116