Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[Crypto in CTF] HASH
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
oalieno
October 31, 2020
Technology
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[Crypto in CTF] HASH
https://github.com/oalieno/Crypto-Course/tree/master/HASH
oalieno
October 31, 2020
More Decks by oalieno
See All by oalieno
[Crypto in CTF] Classical Cipher
oalieno
0
490
[Crypto in CTF] Block Cipher Mode
oalieno
0
1.1k
[Crypto in CTF] LFSR
oalieno
0
540
[Crypto in CTF] RSA
oalieno
0
770
[Crypto in CTF] Bleichenbacher RSA Signature Forgery
oalieno
0
640
[Crypto in CTF] Blockchain Security
oalieno
0
440
滲透測試基本技巧與經驗分享
oalieno
2
1.2k
Other Decks in Technology
See All in Technology
本当の”仕事”を手放せる未来が見えた
mu7889yoon
0
220
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
1
770
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
0
150
CVE-2026-20833_脆弱性対応とAES 化について
jukishiya
0
360
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
370
AIで政治は変わるのか? — 中高生と考えたAI時代の民主主義(東海高校サタデープログラム)
eitarosuda
0
380
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
180
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
200
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
180
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
290
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
150
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
530
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
330
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Designing for Timeless Needs
cassininazir
1
270
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
Transcript
HASH oalieno
Introduction to Hash hash function 任意長度資料 固定長度資料 特性 : 單向函式,不可逆
碰撞 • 碰撞 ( Collision ) : hash function 是將無限⼤⼩的集合映射到有限⼤⼩的集合
根據鴿籠原理,產⽣夠多 hash value 後⼀定會有重複的 也就是碰撞 ( Collision ) hash function cat 3b48 hash function dog 3b48
Merkle–Damgård Construction https://www.youtube.com/watch?v=sawkPgsQPwg 許多的 hash function 是⽤這種構造⽅式 ( ex: md5,
sha1, sha256, … )
Rainbow Table - 彩虹表的前⾝ • 字典攻擊是預先儲存⼀個很⼤的資料庫 • 裡⾯包含許多字串的 hash value
• 透過查表的⽅式找回 hash key • ⽤空間換取時間 aaa 47bce5c7 aab e62595ee aac a9ced3da aad c2f7ab46 … …
Rainbow Table - 建立彩虹表 彩虹表和字典攻擊⼀樣是⽤空間換取時間,但彩虹表多犧牲了⼀點時間來換去更⼩的空間 p0 H q0 p1 R
q1 H … pn-1 H qn-1 R pn hash 鍊 記下這個 記下這個
Rainbow Table - 查找彩虹表 ⼯具 • ophcrack • rainbowcrack •
rtgen
MD5 Collision - 碰撞實測 https://www.mathstat.dal.ca/~selinger/md5collision/ 將兩串不同的 data 寫入檔案 ⽤ md5sum
看看他的 hash value $ echo d131dd02c5e6eec4693d9a0698aff95c2fcab58712467eab4004583eb8fb7f8955ad340609f4b30283e488832571415a085125e8f7cdc99fd91dbdf280373c5bd8823e3156348f5bae6dacd436c919c6dd53e2b487da03fd02396306d248cda0e99f33420f577ee8ce54b67080a80d1ec69821bcb6a8839396f9652b6ff72a70 | xxd -r -p > A $ echo d131dd02c5e6eec4693d9a0698aff95c2fcab50712467eab4004583eb8fb7f8955ad340609f4b30283e4888325f1415a085125e8f7cdc99fd91dbd7280373c5bd8823e3156348f5bae6dacd436c919c6dd53e23487da03fd02396306d248cda0e99f33420f577ee8ce54b67080280d1ec69821bcb6a8839396f965ab6ff72a70 | xxd -r -p > B
MD5 Collision - 碰撞應⽤ https://www.mathstat.dal.ca/~selinger/md5collision/ 給任意的初始值 si ⽤ method of
Wang and Yu 可以找到 Mi, Mi+1 和 Ni, Ni+1 使得 ⽤這種⽅法可以構造出下⾯這樣的程式 ( 他們的 MD5 相等 ) MD5雜湊值相等 si
SHA1 Collision Google 在 2017 年 2 ⽉ 23 號
發表了兩份有⼀模⼀樣的 SHA1 checksum 的 PDF https://shattered.io/
SHA1 Collision Boston Key Party CTF 2017 在 2017 年
2 ⽉ 25 號 ⾺上出了⼀題 SHA1 collision 的題⽬ Boston Key Party CTF 2017 - prudentialv2 要讓 name != password 但是 sha1(name) == sha1(password) 直接把 google 找到的那兩個 PDF 傳過去就對了XD
SHA1 Collision Seccon CTF 2017 - SHA-1 is dead 也是
SHA1 collision 上傳兩個檔案滿⾜ : 1.file1 != file2 2.SHA1(file1) == SHA1(file2) 3.2017 KiB < sizeof(file1) < 2018 KiB 4.2017 KiB < sizeof(file2) < 2018 KiB KiB = 1024 bytes KB = 1000 bytes $ python3 -c "print('A' * (2017 * 1024 - 422435 + 1), end = '')" >> shattered-1.pdf $ python3 -c "print('A' * (2017 * 1024 - 422435 + 1), end = '')" >> shattered-2.pdf
Length Extension Attack • 當我們的 Message Authentication 是 H(salt ||
message) 的形式 • ⽽我們的 hash function H 是 Merkle–Damgård Construction • 我們就可以繞過 MAC 的驗證機制,對明⽂串接部分可控資料
Length Extension Attack salt m[0] m[n] + padding … append
new padding IV H0 H1 Hn … Hn+1 … Hm Continue Hashing • 在改動明⽂後重新計算 hash • salt 已經在前⾯被計算過了,完全不⽤理他 • 新的明⽂包含 message || padding || append
HashPump https://github.com/bwall/HashPump 不⽤⾃⼰指定要⽤哪個 Hash Function 預設會⾃動根據 H(salt || message) 這個
hash 的長度判斷 new hash new message
CTF • TUM CTF Teaser - bad_apple • RuCTF Quals
2014 - MD5 lext • Teaser CONFidence CTF 2015 - Mac hacking • BAMBOOFOX CTF 2018 - baby-lea