iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0

Info

Walkthrough

  • 存取網頁後使用帳號和上關獲取的密碼登入,沒有任何輸入框且要求使用 admin 登入,只有描述寫說 "colocated with http://natas21-experimenter.natas.labs.overthewire.org ."
    • Imgur
  • 同樣使用帳號和上關獲取的密碼登入 natas21-experimenter,可以透過 CSS 調整字體、顏色等
    • Imgur
    • Imgur
  • 點擊 View sourcecode 超連結查看兩個網頁的後端 PHP 程式碼
    • Imgur
    • Imgur
  • 分析程式碼邏輯後畫成流程圖如下,natas21 只有當 SESSION 中存在 admin=1 才會顯示下題的登入密碼;而 natas21-experimenter 則將使用者輸入的 CSS 參數存進 SESSION 中
    • Imgur
  • 可參考 Day 0x02 Natas Level 0 → Level 1 的方法,透過 Burp Suite 的 Proxy 攔截封包並 Send to Repeater,初始請求網頁 natas21-experimenter 時沒有 Cookie,網站會產生新的 Session ID 並 Set-Cookie (可使用 ?debug 輔助)
    • Imgur
  • 在 Message Body 中新增 admin=1 (用 & 接起來),並使用剛得到的 PHPSESSID 提交表單
    • Imgur
  • 回到 natas21 使用同樣的 PHPSESSID 發出請求,成功獲得下題的登入密碼
    • Imgur

Note

  • 上述例子中提交表單是使用 POST 方法,如果要改用 GET 的話,記得寫在上方的 URL 中
  • 同樣發現使用 Burp Suite 時有機率失敗,網路上其他人又都是使用腳本,猜測網站可能也是固定的短時間內會清除 SESSION 檔案

Summary

  • 相關弱點:
  • 弱點原因:
    • 未經驗證的使用者輸入可控制共用的 SESSION 內容,進而獲得權限存取敏感資料
  • 修補建議:
    • 取消 debug 參數等開發者的功能,避免洩漏可用資訊給攻擊者,並建立白名單驗證使用者輸入,改採用 API 而非自定義函式,另建議立即更換密碼,以減少資訊洩漏的風險

Reference


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

尚未有邦友留言

立即登入留言