Harekazeというチームで、Sharif7CTFに参加していました。
Harekazeは651点で122位でした。出場チームは700で、そのうち1点より多い点を入れているのが、380なので、半分より少し上といったところです。日本チームのうちでは6位でした。
私は651点のうち300点にあたる二問を解いたのでWriteUpします。
StrangePDF
%PDF-1.7
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
>>
endobj
2 0 obj
<<
/Type /Pages
/MediaBox [ 0 0 500 800 ]
/Count 1
/Kids [ 3 0 R ]
>>
endobj
3 0 obj
<<
/Type /Page
/Parent 2 0 R
/Resources <<
/XObject <<
/A 6 0 R
>>
>>
/Contents 5 0 R
>>
endobj
4 0 obj
<<
/Type /Font
/Subtype /Type1
/BaseFont /Times-Roman
>>
endobj
5 0 obj
<<
/Length 359
>>
stream
q
10 0 0 10 250 400 cm
/A Do
0.7 0.5 -0.5 0.7 0 0 cm
/A Do
0.7 0.5 -0.5 0.7 0 0 cm
/A Do
0.7 0.5 -0.5 0.7 0 0 cm
/A Do
0.7 0.5 -0.5 0.7 0 0 cm
/A Do
0.7 0.5 -0.5 0.7 0 0 cm
/A Do
0.7 0.5 -0.5 0.7 0 0 cm
/A Do
0.7 0.5 -0.5 0.7 0 0 cm
/A Do
0.7 0.5 -0.5 0.7 0 0 cm
/A Do
0.7 0.5 -0.5 0.7 0 0 cm
/A Do
Q
endstream
endobj
6 0 obj
<< /Type /XObject
/Subtype /Form
/FormType 1
/BBox [ 0 0 1000 1000 ]
/Matrix [ 1 0 0 1 0 0 ]
/Resources <<
/ProcSet [ /PDF ]
/Font <<
/F1 4 0 R
>>
>>
/Length 68
>>
stream
BT
/F1 4 Tf
1 0 0 1 0 3 Tm
(SharifCTF) Tj
ET
endstream
endobj
7 0 obj
<</Length 283>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 620 m 140 620 l
120 615 m 120 595 l
120 590 m 140 590 l
160 650 m 180 650 l
180 645 m 180 625 l
160 620 m 180 620 l
180 615 m 180 595 l
160 590 m 180 590 l
S
endstream
endobj
8 0 obj
<</Length 318>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 615 m 120 595 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 615 m 160 595 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
9 0 obj
<</Length 234>>
stream
2 w
140 645 m 140 625 l
120 645 m 120 625 l
120 620 m 140 620 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
10 0 obj
<</Length 257>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 615 m 160 595 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
11 0 obj
<</Length 236>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 620 m 180 620 l
160 615 m 160 595 l
160 590 m 180 590 l
S
endstream
endobj
12 0 obj
<</Length 257>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 615 m 160 595 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
13 0 obj
<</Length 318>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 615 m 120 595 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 615 m 160 595 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
14 0 obj
<</Length 257>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 615 m 160 595 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
15 0 obj
<</Length 318>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 615 m 120 595 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 615 m 160 595 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
16 0 obj
<</Length 254>>
stream
2 w
140 645 m 140 625 l
120 645 m 120 625 l
120 620 m 140 620 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
160 615 m 160 595 l
S
endstream
endobj
17 0 obj
<</Length 194>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
180 615 m 180 595 l
S
endstream
endobj
18 0 obj
<</Length 215>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 620 m 180 620 l
180 645 m 180 625 l
160 645 m 160 625 l
180 615 m 180 595 l
S
endstream
endobj
19 0 obj
<</Length 194>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
180 615 m 180 595 l
S
endstream
endobj
20 0 obj
<</Length 237>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
21 0 obj
<</Length 236>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 620 m 180 620 l
160 615 m 160 595 l
160 590 m 180 590 l
S
endstream
endobj
22 0 obj
<</Length 61>>
stream
2 w
140 645 m 140 625 l
120 645 m 120 625 l
120 620 m 140 620 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
23 0 obj
<</Length 61>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 615 m 120 595 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 615 m 160 595 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
24 0 obj
<</Length 61>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 615 m 120 595 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 615 m 160 595 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
25 0 obj
<</Length 61>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 615 m 120 595 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 160 620 l
160 615 m 160 585 l
S
endstream
endobj
26 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
27 0 obj
<</Length 61>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 615 m 120 595 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 160 620 l
160 615 m 160 585 l
S
endstream
endobj
28 0 obj
<</Length 61>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 615 m 120 595 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 615 m 160 595 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
29 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
30 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
180 615 m 180 595 l
S
endstream
endobj
31 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
32 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 160 620 l
160 615 m 160 585 l
S
endstream
endobj
33 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
34 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 620 m 180 620 l
160 615 m 160 595 l
160 590 m 180 590 l
S
endstream
endobj
35 0 obj
<</Length 61>>
stream
2 w
140 645 m 140 625 l
120 645 m 120 625 l
120 620 m 140 620 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
160 615 m 160 595 l
S
endstream
endobj
36 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
180 615 m 180 595 l
S
endstream
endobj
37 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
140 645 m 140 625 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
38 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 650 m 180 650 l
180 645 m 180 625 l
160 620 m 180 620 l
160 615 m 160 595 l
160 590 m 180 590 l
S
endstream
endobj
39 0 obj
<</Length 61>>
stream
2 w
120 650 m 140 650 l
120 645 m 120 625 l
120 620 m 140 620 l
120 590 m 140 590 l
140 615 m 140 595 l
160 620 m 180 620 l
180 645 m 180 625 l
160 645 m 160 625 l
180 615 m 180 595 l
S
endstream
endobj
40 0 obj
<</Length 61>>
stream
2 w
100 650 m 100 620 l
100 615 m 100 585 l
120 650 m 140 650 l
140 645 m 140 625 l
120 620 m 140 620 l
120 615 m 120 595 l
120 590 m 140 590 l
160 650 m 180 650 l
160 645 m 160 625 l
160 620 m 180 620 l
160 590 m 180 590 l
180 615 m 180 595 l
S
endstream
endobj
xref
0 40
0000000000 65535 f
0000000010 00000 n
0000000079 00000 n
0000000173 00000 n
0000000301 00000 n
0000000380 00000 n
0000000450 00000 n
trailer
<<
/Size 8
/Root 1 0 R
>>
startxref
600
%%EOF
というようなPDFが渡されます。みると、ぐるぐるの「SharifCTF」という文字があるPDFなんですが、objの7 0から40 0までが使われていないようだったので、27行目あたりの参照を変更してやると、数字が描画されました。
ということで、objの7 0から40 0までを描画するように適当にスクリプトを描いて、出てきた数値をascii表に従って変換してやるとFLAGがでました。 {d1242d2d0969741dde7ed79c3c409c46}
。
スクリプトはこんな感じです。
import os
for i in range(7, 41):
os.system("cp strange_pdf.pdf {}.pdf".format(i))
os.system(r"sed -i '27 s/\[[0-9]*/[{}/g' {}.pdf".format(i, i))
Scrack
バイナリが渡されるのでgdbで解析しようとするとなんか Don't follow me
ぽいことを言われるので objdump してやるとこんなフレーズが出てきて、
...snip...
400acb: 31 c0 xor eax,eax
400acd: 74 fa je 400ac9 <main+0x7c>
400acf: e8 0f b6 45 b0 call ffffffffb085c0e3 <_end+0xffffffffb0259e0b>
400ad4: 3c 38 cmp al,0x38
400ad6: 0f 85 bc 03 00 00 jne 400e98 <main+0x44b>
400adc: 0f b6 45 b1 movzx eax,BYTE PTR [rbp-0x4f]
400ae0: 3c 37 cmp al,0x37
400ae2: 0f 85 b0 03 00 00 jne 400e98 <main+0x44b>
400ae8: 0f b6 45 b2 movzx eax,BYTE PTR [rbp-0x4e]
400aec: 3c 34 cmp al,0x34
400aee: 0f 85 a4 03 00 00 jne 400e98 <main+0x44b>
400af4: 0f b6 45 b3 movzx eax,BYTE PTR [rbp-0x4d]
400af8: 3c 30 cmp al,0x30
400afa: 0f 85 98 03 00 00 jne 400e98 <main+0x44b>
400b00: 0f b6 45 b4 movzx eax,BYTE PTR [rbp-0x4c]
400b04: 3c 33 cmp al,0x33
400b06: 0f 85 8c 03 00 00 jne 400e98 <main+0x44b>
400b0c: 0f b6 45 b5 movzx eax,BYTE PTR [rbp-0x4b]
400b10: 3c 38 cmp al,0x38
400b12: 0f 85 80 03 00 00 jne 400e98 <main+0x44b>
400b18: 0f b6 45 b6 movzx eax,BYTE PTR [rbp-0x4a]
400b1c: 3c 65 cmp al,0x65
400b1e: 0f 85 74 03 00 00 jne 400e98 <main+0x44b>
400b24: 0f b6 45 b7 movzx eax,BYTE PTR [rbp-0x49]
400b28: 3c 34 cmp al,0x34
400b2a: 0f 85 68 03 00 00 jne 400e98 <main+0x44b>
400b30: 0f b6 45 b8 movzx eax,BYTE PTR [rbp-0x48]
400b34: 3c 62 cmp al,0x62
400b36: 0f 85 5c 03 00 00 jne 400e98 <main+0x44b>
400b3c: 0f b6 45 b9 movzx eax,BYTE PTR [rbp-0x47]
400b40: 3c 36 cmp al,0x36
400b42: 0f 85 50 03 00 00 jne 400e98 <main+0x44b>
400b48: 0f b6 45 ba movzx eax,BYTE PTR [rbp-0x46]
400b4c: 3c 65 cmp al,0x65
400b4e: 0f 85 44 03 00 00 jne 400e98 <main+0x44b>
400b54: 0f b6 45 bb movzx eax,BYTE PTR [rbp-0x45]
400b58: 3c 32 cmp al,0x32
400b5a: 0f 85 38 03 00 00 jne 400e98 <main+0x44b>
400b60: 0f b6 45 bc movzx eax,BYTE PTR [rbp-0x44]
400b64: 3c 39 cmp al,0x39
400b66: 0f 85 2c 03 00 00 jne 400e98 <main+0x44b>
400b6c: 0f b6 45 bd movzx eax,BYTE PTR [rbp-0x43]
400b70: 3c 62 cmp al,0x62
400b72: 0f 85 20 03 00 00 jne 400e98 <main+0x44b>
400b78: 0f b6 45 be movzx eax,BYTE PTR [rbp-0x42]
400b7c: 3c 66 cmp al,0x66
400b7e: 0f 85 14 03 00 00 jne 400e98 <main+0x44b>
400b84: 0f b6 45 bf movzx eax,BYTE PTR [rbp-0x41]
400b88: 3c 30 cmp al,0x30
400b8a: 0f 85 08 03 00 00 jne 400e98 <main+0x44b>
400b90: 0f b6 45 c0 movzx eax,BYTE PTR [rbp-0x40]
400b94: 3c 38 cmp al,0x38
400b96: 0f 85 fc 02 00 00 jne 400e98 <main+0x44b>
400b9c: 0f b6 45 c1 movzx eax,BYTE PTR [rbp-0x3f]
400ba0: 3c 39 cmp al,0x39
400ba2: 0f 85 f0 02 00 00 jne 400e98 <main+0x44b>
400ba8: 0f b6 45 c2 movzx eax,BYTE PTR [rbp-0x3e]
400bac: 3c 38 cmp al,0x38
400bae: 0f 85 e4 02 00 00 jne 400e98 <main+0x44b>
400bb4: 0f b6 45 c3 movzx eax,BYTE PTR [rbp-0x3d]
400bb8: 3c 62 cmp al,0x62
400bba: 0f 85 d8 02 00 00 jne 400e98 <main+0x44b>
400bc0: 0f b6 45 c4 movzx eax,BYTE PTR [rbp-0x3c]
400bc4: 3c 67 cmp al,0x67
400bc6: 0f 85 cc 02 00 00 jne 400e98 <main+0x44b>
400bcc: 0f b6 45 c5 movzx eax,BYTE PTR [rbp-0x3b]
400bd0: 3c 34 cmp al,0x34
400bd2: 0f 85 c0 02 00 00 jne 400e98 <main+0x44b>
400bd8: 0f b6 45 c6 movzx eax,BYTE PTR [rbp-0x3a]
400bdc: 3c 66 cmp al,0x66
400bde: 0f 85 b4 02 00 00 jne 400e98 <main+0x44b>
400be4: 0f b6 45 c7 movzx eax,BYTE PTR [rbp-0x39]
400be8: 3c 30 cmp al,0x30
400bea: 0f 85 a8 02 00 00 jne 400e98 <main+0x44b>
400bf0: 0f b6 45 c8 movzx eax,BYTE PTR [rbp-0x38]
400bf4: 3c 32 cmp al,0x32
400bf6: 0f 85 9c 02 00 00 jne 400e98 <main+0x44b>
400bfc: 0f b6 45 c9 movzx eax,BYTE PTR [rbp-0x37]
400c00: 3c 32 cmp al,0x32
400c02: 0f 85 90 02 00 00 jne 400e98 <main+0x44b>
400c08: 0f b6 45 ca movzx eax,BYTE PTR [rbp-0x36]
400c0c: 3c 35 cmp al,0x35
400c0e: 0f 85 84 02 00 00 jne 400e98 <main+0x44b>
400c14: 0f b6 45 cb movzx eax,BYTE PTR [rbp-0x35]
400c18: 3c 39 cmp al,0x39
400c1a: 0f 85 78 02 00 00 jne 400e98 <main+0x44b>
400c20: 0f b6 45 cc movzx eax,BYTE PTR [rbp-0x34]
400c24: 3c 33 cmp al,0x33
400c26: 0f 85 6c 02 00 00 jne 400e98 <main+0x44b>
400c2c: 0f b6 45 cd movzx eax,BYTE PTR [rbp-0x33]
400c30: 3c 35 cmp al,0x35
400c32: 0f 85 60 02 00 00 jne 400e98 <main+0x44b>
400c38: 0f b6 45 ce movzx eax,BYTE PTR [rbp-0x32]
400c3c: 3c 63 cmp al,0x63
400c3e: 0f 85 54 02 00 00 jne 400e98 <main+0x44b>
400c44: 0f b6 45 cf movzx eax,BYTE PTR [rbp-0x31]
400c48: 3c 30 cmp al,0x30
400c4a: 0f 85 48 02 00 00 jne 400e98 <main+0x44b>
...snip...
cmp
に指定されている文字を連結して文字列にしてやって、入力するとフラグが出ました。
SharifCTF{ed97d286f356dadb5cde0902006c7deb}
。
なんか簡単でよくわからないけど、SECCON Onlineの時よりはチームに貢献できたと思います。