iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0

Info

Walkthrough

  • 存取網頁後使用帳號和上關獲取的密碼登入,有密碼輸入框
    • Imgur
  • 點擊 View sourcecode 超連結查看後端 PHP 程式碼
    • Imgur
  • 分析程式碼邏輯後畫成流程圖如下,當請求包含 passwd 時,會檢查是否包含 iloveyou 和是否 > 10
    • Imgur
  • 嘗試輸入 11iloveyou,點擊 Login 按鈕提交
    • Imgur
  • 成功獲得下題的登入密碼
    • Imgur

Note

  • 透過 Day 0x0D Natas Level 11 → Level 12 嘗試上傳包含 phpinfo() 的 PHP 腳本,發現網站是 PHP Version 7.4.33,假設 natas23 也是同樣環境,且因為 PHP 的特性,在 == (Loose comparisons) 比較的時候會自動轉換型態,所以實際上是先將 passwd 轉換成數字再比較是否 > 10
    • Imgur
  • 可以在本地或線上 Sandbox 嘗試看看,只要前面數字大於 10 都可以,但神奇的是 PHP 8.0 以後反而 iloveyou 也是 true 🤣
    • Imgur

Summary

  • 相關弱點:
  • 弱點原因:
    • 透過 PHP 的特性且程式未對輸入數據進行適當的比較和過濾,攻擊者可繞過身份驗證,獲取權限閱覽敏感資訊
  • 修補建議:
    • 評估是否需要更換其它較安全的認證方式,且針對使用者輸入的長度、型態、特殊字元等過濾及轉譯,並建議立即更換密碼,以減少資訊洩漏的風險

Reference


上一篇
Day 0x17 Natas Level 21 → Level 22
下一篇
Day 0x19 Natas Level 23 → Level 24
系列文
Natas 網頁安全:從入門到放棄35
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言