iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0

Info

Walkthrough

  • 存取網頁後使用帳號和上關獲取的密碼登入,發現有上傳檔案功能,網頁描述要求 JPEG 格式寫最大 1KB
    • Imgur
  • 點擊 View sourcecode 超連結查看後端 PHP 程式碼
    • Imgur
  • 分析程式碼邏輯後畫成流程圖如下,最初生成亂數檔案名稱並寫入網頁的 input 標籤的 value 中,上傳檔案後會重新生成檔案名稱但保留副檔名,並將檔案位址的超連結回顯於網頁中
    • Imgur
  • 構造出 PHP 的 one-liner webshell,用 Ctrl + Shift + iF12 開啟 DevTools,找到包含亂數檔案名稱的 input 標籤,修改成 value=<隨便你>.php 後按下 Upload File 按鈕上傳檔案
    <?php system("cat /etc/natas_webpass/natas13"); ?>
    
    • Imgur
  • 看到有成功回顯亂數檔案名稱但副檔名不變的超連結
    • Imgur
  • 點擊超連結成功看到下題的登入密碼
    • Imgur

Note

  • 完全依靠前端來限制上傳檔案的名稱、副檔名,後端唯一有檢查的是檔案大小,因此攻擊者可以任意修改來繞過阻擋,上傳惡意檔案可能導致攻擊者完全接管網站,達成任意修改、新增、刪除、停用等行為,嚴重影響網站服務品質與承受相關資安風險

Summary

  • 相關弱點:
  • 弱點原因:
    • 透過前端調整副檔名,允許使用者上傳惡意檔案
  • 修補建議:
    • 由網站建立白名單驗證檔案類型,並重新創建檔案、名稱、副檔名,並建議立即更換密碼,以減少資訊洩漏的風險

Reference


上一篇
Day 0x0C Natas Level 10 → Level 11
下一篇
Day 0x0E Natas Level 12 → Level 13
系列文
Natas 網頁安全:從入門到放棄35
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言