Web Security
Vivian Huang
Outline
- OWASP Top 10
- Common website attacks
- Brup suite
- Always Encrypted
- Reference
What is the OWASP Top 10?
- OWASP(Open Web Application Security Project)

The Top 10 OWASP vulnerabilities in 2021
- Injection
- Broken authentication
- Sensitive data exposure
- XML external entities (XXE)
- Broken access control
- Security misconfigurations
- Cross site scripting (XSS)
- Insecure deserialization
- Using components with known vulnerabilities
- Insufficient logging and monitoring
Broken authentication

Broken authentication
- 
	猜測 Session ID (Session Prediction)
- 
	竊取 Session ID (Session Hijacking)
- 
	固定 Session ID (Session Fixation)
Broken authentication
防護建議:
- 避免將 Session ID 使用 URL (GET) 方式來傳遞
- 設定加強安全性的 Cookie 屬性:HttpOnly (無法被 JavaScript 存取)
- 設定加強安全性的 Cookie 屬性:Secure (只在 HTTPS 傳遞,若網站無 HTTPS 請勿設定)
- 在需要權限的頁面請使用者重新輸入密碼
Sensitive data exposure

Sensitive data exposure
防護建議:
- 使用 SSL 加密連線進行資料傳輸
- 以加密、雜湊(hash)等方式保存敏感資料,例如帳號密碼
- 檢查系統防火牆規則設定,限制所需的連接埠,定期查看內部是否有對外大量不同目的 IP 之異常連線,與帳號活動。
XML external entities (XXE)

XML external entities (XXE)

XML external entities (XXE)
防護建議:
- 禁止外部實體引用。
- 修補或升級有引用的套件,並將 XML 升級到最新。
Broken access control

Broken access control
防護建議:
- 
	處理檔案或敏感性資料時,需嚴格進行監控及身份權限驗證。 
- 
	利用 index 之方式讀取檔案,取代直接讀取檔案名稱。 
Security misconfigurations

Security misconfigurations
防護建議:
- 避免系統啟用或安裝非必要功能,例如:非必要的端口、服務、網頁、帳戶或權限等。
- 不使用預設密碼。
- 對Server、Framework(如:Struts、Spring、ASP.NET)、library、DB 等進行安全配置。
- 定期進行安全更新的系統。
Insecure deserialization


Insecure deserialization

Insecure deserialization
防護建議:
- 將序列化的物件加上數位簽章或進行加密,防止新增惡意物件或資料竄改。
- 記錄反序列化所發生的例外情況與失敗訊息。
- 監控反序列化,當用戶持續進行反序列化時,應啟動警告機制。
Using components with known vulnerabilities

Using components with known vulnerabilities
防護建議:
- 識別所有使用到的第三方元件及其版本。
- 定期檢視所使用元件的公開安全資訊,以確保接收到第三方元件的安全訊息。
- 建立安全政策,指導第三方元件的使用原則,例如:需要了解其安全性、通過安全性測試才得以使用。
Insufficient logging and monitoring

Insufficient logging and monitoring
防護建議:
- 確保登錄、存取失敗、驗證失敗的訊息都能被完整記錄,並保留足夠的用戶資訊,以辨別可疑或惡意行為。
- 建立有效的監控與警告機制,使可疑活動在短時間內能夠被發現及應對。
Common website attacks
- SQL Injection &Blind SQL Injection
- Cross site scripting (XSS)
- CSRF
- Open Redirect
SQL Injection
SELECT user_data FROM user_table
WHERE user_name = 'vivian'
AND paswword = '1111' 

SELECT user_data FROM user_table
WHERE user_name = 'vivian'
AND paswword = ''or 1=1 --' password: 'or 1=1 --
Blind SQL Injection

Blind SQL Injection



Blind SQL Injection




Blind SQL Injection


Blind SQL Injection



SQL Injection
防護建議:
- 檢查使用者輸入字串與格式,並過濾特殊符號
- 採用參數化查詢
- 資料庫權限的設置
Cross site scripting (XSS)

Cross site scripting (XSS)

Cross site scripting (XSS)

Reflected XSS

Reflected XSS


Stored XSS

Stored XSS

DOM Based XSS

防護建議:
- 驗證輸入的資料。
- 將資料編碼後再進行輸出。
- 同時使用白名單與黑名單機制過濾資料。
Cross site scripting (XSS)

Cross-site request forgery(CSRF)
Cross-site request forgery(CSRF)
防護建議:
- 加上圖形驗證碼、簡訊驗證碼
- 檢查 referer欄位
- 加上 CSRF token
- 瀏覽器端的防禦:SameSite cookie
Open Redirect



Open Redirect

Open Redirect
防護建議:
- 採用白名單,指定可以被跳轉的路徑
- 若跳轉的目的地是「完整網址」,驗證網域的結尾或是指定整個網域 ( Domain ),而不是只要驗證開頭。
Burp Suite
Always Encrypted

Reference
- Burp suite:https://ithelp.ithome.com.tw/users/20114110/ironman/3806?page=2
- 參考網站:
- https://medium.com/hannah-lin/%E5%B9%BC%E5%B9%BC%E7%8F%AD%E4%B9%9F%E8%83%BD%E6%87%82%E7%9A%84-owasp-top-10-692764c51f61
- https://ithelp.ithome.com.tw/users/20108446/ironman/3463
- https://medium.com/starbugs/%E8%BA%AB%E7%82%BA-web-%E5%B7%A5%E7%A8%8B%E5%B8%AB-%E4%BD%A0%E4%B8%80%E5%AE%9A%E8%A6%81%E7%9F%A5%E9%81%93%E7%9A%84%E5%B9%BE%E5%80%8B-web-%E8%B3%87%E8%A8%8A%E5%AE%89%E5%85%A8%E8%AD%B0%E9%A1%8C-29b8a4af6e13
- https://medium.com/%E7%A8%8B%E5%BC%8F%E7%8C%BF%E5%90%83%E9%A6%99%E8%95%89/%E7%B6%B2%E7%AB%99%E5%AE%89%E5%85%A8-%E9%96%8B%E6%94%BE%E5%BC%8F%E9%87%8D%E5%AE%9A%E5%90%91-open-redirect-%E6%94%BB%E6%93%8A%E6%89%8B%E6%B3%95-68c745b53a3b
Reference
Web Security
By vivian_0920
Web Security
- 476
 
   
   
  