Day1-Introduction to PWN & How to PWN

What is PWN? PWN 也稱為 Binary Exploitation,簡單來說,就是透過找尋程式中的漏洞,並利用這些漏洞來取得伺服器權限,或是直接使用 shell 獲取檔案,或者進行各種不同的利用。至於 PWN 的念法,有很多有趣的說法。由於 PWN 源自於 “own” 這個詞,因此有人讀作 “碰”,但也有不少人讀作 “胖”。 How to PWN? 從上面的簡單介紹可以看出,PWN 主要是透過發現程式中的漏洞,並利用這些漏洞達成我們想要的目標。那麼,應該如何找到漏洞呢?在這個過程中,我們可能會使用以下方法: 模糊測試 (Fuzzing) 分析原始碼 反組譯至組合語言 反編譯到原始碼 … 找到漏洞後,如何利用這些漏洞?常見的方法包括: 控制程式的執行流程 覆蓋返回位址 (Return Address) 修改變數值 至於我們的目標,通常包括以下幾點: 提取檔案 讀寫檔案 獲取 Shell 接下來的內容 上述所有內容將在後續的文章中一一為大家詳細介紹,並提供豐富的練習範例和實戰題目來進行漏洞利用。如果有想要學習的特定內容,也歡迎大家在下方留言區許願。

2024-09-15 · 1 min · 41 words · YJK

AIS3 mfctf & pre-exam 2024 writeup

Web Evil Calculator 網頁是一個簡單的計算機程式 透過攔截封包與 app.py 程式碼會發現他是將結果傳 POST 請求到 /calculate,並傳入 eval 做計算,所以可以傳入程式碼做解析,接下來看到 app.py 會發現傳送過去的 expression 空格跟底線都會被過濾,所以應該是不可以 import 其他東西,接下來看到 docker-compose.yml 可知 flag 在 /flag,因此直接透過開檔讀檔拿到 flag app.py 1from flask import Flask, request, jsonify, render_template 2 3app = Flask(__name__) 4 [email protected]('/calculate', methods=['POST']) 6def calculate(): 7 data = request.json 8 expression = data['expression'].replace(" ","").replace("_","") 9 try: 10 result = eval(expression) 11 except Exception as e: 12 result = str(e) 13 return jsonify(result=str(result)) 14 [email protected]('/') 16def index(): 17 return render_template('index.html') 18 19if __name__ == '__main__': 20 app.run("0.0.0.0",5001) docker-compose.yml ...

2024-07-01 · 5 min · 910 words · YJK