iT邦幫忙

2021 iThome 鐵人賽

DAY 5
2
Security

【CTF衝衝衝 - Web篇】系列 第 5

【第五天 - Gedit 備份洩漏】

Q1. gedit 是什麼?

  • Gnome 是 Unix-like 作業系統上的一個開源桌面環境,提供豐富而完善的圖形化介面工具滿足使用者的日常所需,如文字編輯、音樂播放器、PDF 檢視器等。而 gedit 就是其中的純文字編輯器,類似 Microsoft Windows 的記事本。

Q2. 為什麼會有 gedit 的問題?

  • 在 Linux 使用 gedit 修改並保存後,目錄會生成一個後綴為 ~ 的暫存檔案
    • 例如 flag 檔案使用 gedit 保存,會生成 flag~ (此檔案會是上一個版本的內容),而 flag 會是最終儲存內容
    • 補充說明,若是 gedit 不正常關閉,例如電腦突然斷電,若你沒按儲存,他不會自動將檔案儲存於 flag 或 flag~ 中
  • 工程師直接在 web server 的公開目錄上修改程式碼,如 index.php 會產生 index.php~ 。由於後綴不是 .php, 網頁伺服器不會把檔案交給 php interpreter 解析,駭客便可以直接下載到原始碼。
  • 或者,假設工程師之前做了一份含有機敏資料的文件,但是後來決定將部分機敏資料移除,當使用 gedit 編輯並保存後,工程師將整個資料夾打包寄給客戶,但是沒注意到資料中含有 <檔名~> 的檔案,客戶就能從 <檔名~>看到上個版本中的機敏資料。

Q3. gedit 洩漏類型

  • 將 FLAG 儲存於上一次版本的 gedit 檔案中,FLAG 會儲存於 flag~ 檔案內 (如 Lab 1)
    • ls -al
      • 查看有哪些資料
    • cat <檔案>
    • cat <檔案~>
      • 看暫存檔是否有 FLAG

Lab 1

  • Lab 1 題目環境佈置

    • 在 ubuntu 桌面環境下,在 Ubuntu 20.04 預設是沒開啟儲存 gedit 的暫存檔,可以手動檢查 gedit 的設定,並開啟儲存暫存檔功能
      https://ithelp.ithome.com.tw/upload/images/20210919/20140592rF2seap4Sg.png
    # 建立網頁目錄
    mkdir /var/www/html/gedit_test && cd /var/www/html/gedit_test
    # 創建一個 gedit 檔案,此時會跳出 gedit 編輯器畫面,寫入真正的 FLAG 並儲存
    gedit flag
    # 會看到目錄下,有剛剛創建的 flag 檔案
    ls -al
    # 再次編輯 flag gedit 檔案,把輸入的 FLAG 砍掉,寫上假 FLAG,並儲存
    gedit flag
    # 看到當前目錄,會出現 flag~ 的檔名,裡面會儲存上一次的 gedit flag 的內容 (真正 FLAG)
    ls -al
    

    https://ithelp.ithome.com.tw/upload/images/20210919/20140592ncLhA0Veso.png
    https://ithelp.ithome.com.tw/upload/images/20210919/20140592alvMdMJNoC.png
    https://ithelp.ithome.com.tw/upload/images/20210919/20140592rWOf1SYLcI.png

  • Lab 1 解題
    https://ithelp.ithome.com.tw/upload/images/20210919/20140592y0dXeXeZCe.png


上一篇
【第四天 - HG 洩漏】
下一篇
【第六天 - vim 備份洩漏】
系列文
【CTF衝衝衝 - Web篇】30

尚未有邦友留言

立即登入留言