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
Pwn超超入門
Search
yud0uhu
July 24, 2021
Programming
0
25
Pwn超超入門
【参考書籍】
はじめて学ぶバイナリ入門
https://nextpublishing.jp/book/11353.html
cistLT by June 24, 2021
yud0uhu
July 24, 2021
Tweet
Share
More Decks by yud0uhu
See All by yud0uhu
動画配信サービスのフロントエンド実装に学ぶ設計原則
yud0uhu
1
230
非デザイナーのフロントエンドエンジニアがOOUIを考える
yud0uhu
9
4.9k
2023年の ゼロランタイムCSS in JS⚡️ を考える
yud0uhu
5
4.6k
Vue3/Electronで自作したマークダウンエディタをVue3/Tauriにリプレイスした話
yud0uhu
2
2.4k
入社半年を迎える新米エンジニアがカンファレンス・勉強会から得た学び
yud0uhu
0
910
Next.js×Prisma×GraphQL×Supabase +WASMでブログを自作した話
yud0uhu
0
1.1k
Rustでつくって学ぶProtocol Buffers
yud0uhu
1
86
ブログを自作した話
yud0uhu
1
18
Wasmで動くRust製マークダウンパーサーを自作した話
yud0uhu
1
24
Other Decks in Programming
See All in Programming
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
1.9k
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
return文におけるstd::moveについて
onihusube
1
1.4k
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
3
190
良いユニットテストを書こう
mototakatsu
11
3.6k
情報漏洩させないための設計
kubotak
5
1.3k
Alba: Why, How and What's So Interesting
okuramasafumi
0
210
rails newと同時に型を書く
aki19035vc
5
710
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
2.8k
Jaspr Dart Web Framework 박제창 @Devfest 2024
itsmedreamwalker
0
150
chibiccをCILに移植した結果 (NGK2025S版)
kekyo
PRO
0
140
Featured
See All Featured
KATA
mclloyd
29
14k
Typedesign – Prime Four
hannesfritz
40
2.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
A Modern Web Designer's Workflow
chriscoyier
693
190k
Adopting Sorbet at Scale
ufuk
74
9.2k
A Tale of Four Properties
chriscoyier
157
23k
Thoughts on Productivity
jonyablonski
68
4.4k
Practical Orchestrator
shlominoach
186
10k
Being A Developer After 40
akosma
89
590k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
The Invisible Side of Design
smashingmag
299
50k
Transcript
PWNABLE 超超入門 情報システム工学科3年 0yu @yud0uhu
自己紹介 •プロメン・cistLT サークル・写真部に所属 •主に Web が好き。フロントエンドは Vue.js でよく遊んでます •サーバーサイド Kotlin
が最近熱い •コープさっぽろで半年ほどエンジニアインターンをやっています。 •トドックサイトすごいのでぜひ使ってみてください!Webカタログをモバイルで横スク表示 にさせるやつとかやりました
ところで皆さん、CTFってご存じですか? なにそれ、っていう方向けに ⇒ざっくりいうとハッキングコンテスト • Capure The Flagの略。隠されているFlag(答え)を見つけ出し、時間内に獲 得した合計点数を競うもの 今回はその中の分野の一つ、Pwnable(以後Pwn)についての LT
をしたいと思 います。
PWNって? • 語源は「own」 • 「支配する」等のニュアンスから転じたもの • CTFではバイナリを解析したりして、プログラムの脆弱性を突くジャンル PWNの超入門 大和セキュリティ神戸 (https://www.slideshare.net/ssuserbcacc5/pwn-20180325
)より
BOF攻撃
バッファオーバーフローの脆弱性 プログラムが想定するメモリ領域を超えるような入力をハッカーが 意図的に行い、バッファをあふれさせる古典的な脆弱性 Pwn系の問題における最も基本的な解法の一つ
スタック領域について プログラム部 スタック部
スタック領域について スタック部 プログラム部 str2 Push EBP(下位) ESP(上位)
スタック領域について プログラム部 スタック部 overflowme[16] str2 Push EBP(下位) ESP(上位)
バッファオーバーフローを起こしてみる スタック部 プログラム部 overflowme[16] str2 Buffer Overflow EBP(下位) ESP(上位)
バッファオーバーフローを起こしてみる スタック部 プログラム部 Overflowme[16] str2 EB P ES P Buffer
Overflow 適当な16文字で overflowmeのスタック領 域を塗りつぶし、str2の beefをfishで上書き
バッファオーバーフローを起こしてみる プログラム部 Overflowme[16] str2 Segmen tation fault EBP(下位) ESP(上位)
特定のスタック領域を狙って攻撃したい ↓ オフセットを確認する • Gdb-pedaというデバッカを用いてプログラムのうごきを追ってい きます • Str2がoverflowmeの16バイト前に存在していることを確かめるに は?
オフセットを確認 する •$ gcc –m32 –fno-stack-protector hogehoge.c •gdb-peda$ gdb a.out
•gdb-peda $ b vuln // vuln にブレイクポイントを設定 •gdb-peda $ run • n で一行ずつステップを実 行していく
• ASCIIコード変換表を見 ると 0x 66 65 65 62 f e
e b • ebpというレジスタ (=0xffffxfd8)の指すアドレ スから、16進数で0xdだ け減らしたところに、 0x66656562をコピーす るという指示を出している オフセットを確認 する
オフセットを確認する • Call 0x56555440 <_isoc99_scanf@plt>まで ステップ実行するとscanf関 数が呼び出される ⇒22文字入力してみる
gdb-peda$ stack 12 を走らせてみる 0xffffcfccを始点に20文字 積まれていく様子がわかる ⇒str2が格納されている0xffffcfd8に、fishが上書き されてしまうことが確認できた! 0xffffcfb8 ←変数str2
0xffffcfbc 0xffffcfc0 0xffffcfc4 0xffffcfc8 0xffffcfcc←標準入力の始点
初心者向けCTF CTF 挑戦してみたいかも、という方は、以下の常設 CTF がおすすめです。 • [picoCTF](https://play.picoctf.org/practice?originalEvent=1&page=1) • 海外の常設CTF。youtubeや個人の方のブログに解法(writeup)が数多くアッ プされているため、とっつきやすそう。
• [KsnctSSf](https://ksnctf.sweetduet.info/problem/4) • 運営のkusanoさんの書かれた本 • https://www.amazon.co.jp/dp/B08Q3JKBR3/ref=dp-kindle-redirect?_enco ding=UTF8&btkr=1 • 演習環境がDockerコンテナで用意されている
勉強会など • MH4Y • 一昨年は道警本部で開催されました。数人一組でチームを組み、ク ラッカーから Web サイトを防衛する演習を競技形式で行いました。 • SC4Y
• 定期開催されているハンズオン講習会。CTF形式でセキュリティを学 べておすすめです! • 20#1の参加レポート(当時書いたやつ)。 • 21#2が明日開催です(OSCの中でやるみたいです)
勉強会など • セキュリティミニキャンプ • 昨年はCTFのPwn問題とWeb問題の二ジャンルの形式でセキュリティ について学ぶ講座が開講 • 急にセキュリティキャンプはハードルが高いなぁ、という方にもおすす めです! •
SECCON Beginners • SECCON CTFの初心者向け勉強会 • 8-9月頃にビギナーズ向けオンラインイベントをやるみたいです
~資料作成にあたり~ • はじめて学ぶバイナリ解析 を参考にさせていただきました。 • めちゃめちゃわかりやすい!!