1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WaniCTF2024で解けなかった問題を勉強した記録

Last updated at Posted at 2024-06-24

Forensics

tiny_10px

(゜◇゜)ガーン
簡単な問題をやってなかった。
体力的にギブアップして、問題のダウンロードすらしてなかった。

ダウンロードした画像

chal_tiny_10px.jpg

さすがに小さすぎて、サイズの問題とすぐに気付くだろう

JPGのサイズの場所は 0xFFC0 を検索して少し先
黄色でマーカーしたところ

image.png

000a x 000a だ(だから問題名が10pxね)

試行錯誤で

0140 x 0140 に

image.png

縦は、25%
横は、50%
くらいか

0070 x 00A0 に

image.png

Reversing

home

他の人のWriteup 見ると、私が解けなかった原因がよくわからない。
疲れて視力低下が原因?
とにかく、復習する。

pdisass main

gdb-peda$ pdisass main
Dump of assembler code for function main:
   0x0000555555555977 <+0>:     endbr64
   0x000055555555597b <+4>:     push   rbp
   0x000055555555597c <+5>:     mov    rbp,rsp
=> 0x000055555555597f <+8>:     sub    rsp,0x410
   0x0000555555555986 <+15>:    mov    rax,QWORD PTR fs:0x28
   0x000055555555598f <+24>:    mov    QWORD PTR [rbp-0x8],rax
   0x0000555555555993 <+28>:    xor    eax,eax
   0x0000555555555995 <+30>:    lea    rax,[rbp-0x410]
   0x000055555555599c <+37>:    mov    esi,0x400
   0x00005555555559a1 <+42>:    mov    rdi,rax
   0x00005555555559a4 <+45>:    call   0x555555555060 <getcwd@plt>
   0x00005555555559a9 <+50>:    test   rax,rax
   0x00005555555559ac <+53>:    je     0x555555555a26 <main+175>
   0x00005555555559ae <+55>:    lea    rax,[rbp-0x410]
   0x00005555555559b5 <+62>:    lea    rsi,[rip+0x71a]        # 0x5555555560d6
   0x00005555555559bc <+69>:    mov    rdi,rax
   0x00005555555559bf <+72>:    call   0x5555555550a0 <strstr@plt>
   0x00005555555559c4 <+77>:    test   rax,rax
   0x00005555555559c7 <+80>:    je     0x555555555a18 <main+161>
   0x00005555555559c9 <+82>:    lea    rdi,[rip+0x70e]        # 0x5555555560de
   0x00005555555559d0 <+89>:    call   0x555555555030 <puts@plt>
   0x00005555555559d5 <+94>:    mov    ecx,0x0
   0x00005555555559da <+99>:    mov    edx,0x0
   0x00005555555559df <+104>:   mov    esi,0x0
   0x00005555555559e4 <+109>:   mov    edi,0x0
   0x00005555555559e9 <+114>:   mov    eax,0x0
   0x00005555555559ee <+119>:   call   0x555555555080 <ptrace@plt>
   0x00005555555559f3 <+124>:   cmp    rax,0xffffffffffffffff
   0x00005555555559f7 <+128>:   jne    0x555555555a0c <main+149>
   0x00005555555559f9 <+130>:   lea    rdi,[rip+0x6ec]        # 0x5555555560ec
   0x0000555555555a00 <+137>:   call   0x555555555030 <puts@plt>
   0x0000555555555a05 <+142>:   mov    eax,0x1
   0x0000555555555a0a <+147>:   jmp    0x555555555a3e <main+199>
   0x0000555555555a0c <+149>:   mov    eax,0x0
   0x0000555555555a11 <+154>:   call   0x5555555551b0 <constructFlag>
   0x0000555555555a16 <+159>:   jmp    0x555555555a39 <main+194>
   0x0000555555555a18 <+161>:   lea    rdi,[rip+0x6e0]        # 0x5555555560ff
   0x0000555555555a1f <+168>:   call   0x555555555030 <puts@plt>
   0x0000555555555a24 <+173>:   jmp    0x555555555a39 <main+194>
   0x0000555555555a26 <+175>:   lea    rdi,[rip+0x6d5]        # 0x555555556102
   0x0000555555555a2d <+182>:   call   0x555555555090 <perror@plt>
   0x0000555555555a32 <+187>:   mov    eax,0x1
   0x0000555555555a37 <+192>:   jmp    0x555555555a3e <main+199>
   0x0000555555555a39 <+194>:   mov    eax,0x0
   0x0000555555555a3e <+199>:   mov    rdx,QWORD PTR [rbp-0x8]
   0x0000555555555a42 <+203>:   xor    rdx,QWORD PTR fs:0x28
   0x0000555555555a4b <+212>:   je     0x555555555a52 <main+219>
   0x0000555555555a4d <+214>:   call   0x555555555040 <__stack_chk_fail@plt>
   0x0000555555555a52 <+219>:   leave
   0x0000555555555a53 <+220>:   ret

0x00005555555559ac <+53>: je 0x555555555a26 <main+175>
でジャンプさせない
0x00005555555559a9でブレークして、RAXに0x1をセット

0x5555555559c7 <main+80>: je 0x555555555a18 <main+161>
でジャンプさせない
0x00005555555559c4でブレークして、RAXに0x1をセット

0x00005555555559f7 <+128>: jne 0x555555555a0c <main+149>
でジャンプさせない
0x00005555555559f3でブレークして、RAXに0x0をセット

0x0000555555555a11 <+154>: call 0x5555555551b0 <constructFlag>
の次の行でブレーク

FLAG{を検索

gdbで入力するコマンド

b main
r
pdisass main
b *0x00005555555559a9
b *0x00005555555559c4
b *0x00005555555559f3
b *0x0000555555555a16
c
set $rax=0x1
c
set $rax=0x1
c
set $rax=0x0
c
find FLAG{

image.png

なんでこれができなかったのだろう?
不思議だ。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?