iT邦幫忙

2026 iThome 鐵人賽

DAY 29
0
Security

仿生人是否會夢見網頁山羊? 資安小白的30天Webgoat闖關紀錄系列 第 29 篇

[DAY29]仿生人是否會夢見網頁山羊? -- CSRF, Security Misconfiguration, XXE 防護

  • 分享至 

  • xImage
  •  

由於之前說過的 A5 Security Misconfiguration中包了一個Security Misconfiguration, 所以止寫Security Misconfiguration 感覺好像怪怪的,所以就把三個一起放上來了

CSRF

Cross-Site Request Forgeries (跨站請求偽造),是利用網頁對於瀏覽器中Cookie持有者身分的過度信任,導致攻擊者能透過URL等方式使受害者在無意間進行其他已登入網站的操作,又或是登入攻擊者掌握的帳號進行操作(Login CSRF),導致個資被偷取

防護方法

  • Cookie設置: 在網頁中設置 SameSite=Lax 或 Strict 屬性,防止Cookie被傳送到其他網站
  • 驗證操作者意圖: 使用由CSPRNG(密碼學安全偽亂數生成器)生成的 CSRF-Token
    進行 Signed Double-Submit Cookie (簽署式雙重提交 Cookie)
  • 檢查請求來源: 設置 CSRF filter (過濾器)

Security Misconfiguration

由於不安全的設置,攻擊者可能會透過預設帳號,未關閉的測試端口,或是debug回傳中拿到攻擊者本不應該取得的敏感資訊,使其之後的攻擊更加容易

防護方法

  • 帳號管理:帳號停止使用預設帳號密碼,如admin/admin,並在初次使用帳號密碼時強制進行密碼更換
  • 報錯管理:將Debug資訊僅傳送到log,僅顯示籠統,安全且對於一般正常使用者易懂的報錯資訊給使用者
  • 端點管理:關閉不必要的端點,僅限內部受信任的網路存取伺服器診斷端點,並且還要進行身分以及權限驗證

XXE

由於未限制外部實體解析,使攻擊者能夠讓XML解析惡意外部實體宣告以及代碼,從而導致機密資訊洩漏,SSRF或者DOS攻擊(Billion Laughs Attack)

防護方法

  • 使用 XMLInputFactory.SUPPORT_DTD 設定使解析器忽略DTD,例如
XMLInputFactory xif = XMLInputFactory.newFactory();
xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
  • 若必須使用DTD,則使用 XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES 使解析器忽略外部實體
XMLInputFactory xif = XMLInputFactory.newFactory();
xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
xif.setProperty(XMLInputFactory.SUPPORT_DTD, true);

明日內容: 心得


上一篇
[DAY28]仿生人是否會夢見網頁山羊? -- XXE (下)
下一篇
[DAY30]仿生人是否會夢見網頁山羊?-- 完賽心得
系列文
仿生人是否會夢見網頁山羊? 資安小白的30天Webgoat闖關紀錄 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言