hiiir 資安講座 vi 伺服器端攻擊與防禦iii

17
Taien內部資安講座 VI 伺服器端攻擊與防禦III 2013.05.22 @ Hiiir Inc. Taien Wang<[email protected]> 英屬維京群島商時間軸科技股份有限公司新創事業部

Upload: hiiir-lab

Post on 20-Jun-2015

595 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

Taien內部資安講座 VI 伺服器端攻擊與防禦III

2013.05.22 @ Hiiir Inc.

Taien Wang<[email protected]>

英屬維京群島商時間軸科技股份有限公司新創事業部

Page 2: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

伺服器端攻擊與防禦III - 大綱

1. 目錄遊走(Directory Traversal)

2. eval注入(Eval Injection)

常用搭配函數

1. 編碼

2. 壓縮

3. 雙引號的特性(Double Quotes)

4. 參考資料

Page 3: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

1.目錄遊走

Directory Traversal

Page 4: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

1. 目錄遊走(Directory Traversal) – 簡介(1/3)

• 基本上同伺服器端攻擊與防禦II > 3. 檔案或資源匯入安全 > 攻擊技巧

• 攻擊手法

– ..

• 一些變形

編碼 等同

%2e%2e%2f ../

%2e%2e/ ../

..%2f ../

%2e%2e%5c ..\

%2e%2e\ ..\

..%5c ..\

%252e%252e%255c ..\

..%255c ..\

Page 5: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

1. 目錄遊走(Directory Traversal) – 真實案例(2/3)

Page 6: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

1. 目錄遊走(Directory Traversal) – 解決方案(3/3)

• 需要注意的地方

– include, include_once, require, require_once…

– fopen(), file(), copy(), unlink(), system(), exec(), passthru()…

• 解決方案

– 白名單

– 黑名單

• 過濾跳脫

• basename()

• escapeshellarg()

– php.ini

• open_basedir

– Windows 多目錄設定”分號”

– Linux 多目錄設定”冒號”

(僅供參考,不同環境有不同選擇)

Page 7: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

2. Eval注入

Eval Injection/搭配函數

Page 8: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

2. eval 注入 – 簡介(1/4)

• eval 內可用來執行一些動態 PHP 程式碼

• PHP 官方說明

– eval()使用上非常危險, 他允許執行任意PHP程式碼

– 因此它的使用是不鼓勵的, 除非沒有其他選擇

– 輸入的資料請驗證過

• 實際上

– 惡意程式很常使用它

– 也有少部分機會有注入機會(未實驗成功, 煩請有經驗的指導)

Page 9: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

2. eval 注入 – 常見搭配手法(2/4)

• show_source()

• 編碼

– Base64: base64_encode(), base64_decode()

– Base32

• 壓縮

– ZIP: ZipArchive

– GZ: gzcompress(), gzuncompress()

Page 10: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

2. eval 注入 – 實際案例(3/4)

• 編碼後

• 解碼後

Page 11: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

2. eval 注入 – 解決方案(4/4)

• 解決方案

– 白名單

• 限制於雙引號內的字元為常見字元

– 黑名單

• 嚴格過濾預期外的程式碼

– PHP 禁用函式

(僅供參考,不同環境有不同選擇)

Page 12: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

3.雙引號的特性

Double Quotes

Page 13: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

3.雙引號的特性 – 簡介(1/4)

• 雙引號怎麼使用函數

• 具有攻擊性的範例

Page 14: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

3.雙引號的特性 – 真實案例(2/4)

Page 15: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

3.雙引號的特性 – 真實案例(3/4)

• ThinkPHP Framework 任意程式碼執行漏洞

Page 16: Hiiir 資安講座 VI 伺服器端攻擊與防禦III

3.雙引號的特性 – 解決方案(4/4)

• 常見情境

– 產生檔案(如: Cache, 樣板, 或是設定檔等)

• 解決方案

– 白名單

• 限制於雙引號內的字元為常見字元

– 黑名單

• 過濾${@等非法字元

– PHP 禁用函式

(僅供參考,不同環境有不同選擇)