SECCON 영화CTF Writeup

15155 단어 secconCTFwriteup
nicklegr에서 개인 참여.
210점으로 97위(858팀중)였습니다.





의외로 좋은 질의?
고등어도 축제 중. CTF 있다 있다.

플래그의 예는? (Misc)



헤세이 마지막 마지막, 레이와 최초의 SECCON CTF에 오신 것을 환영합니다. 플래그는 SECCON{reiwa}입니다.
SECCON{reiwa}

bREInWAck (Misc)



원호가 바뀐다. 기호도 바뀐다.
참고 : htps : // 그럼.ぃきぺぢ아. 오 rg / uki / B 라이프 ck

틀린 것 같지 않은 곳은 결정 치고 나머지는 총당하고 모든 패턴을 Web 인터프리터에서 실행.
# coding: utf-8

require "pp"

input = 
"令和和和和和和和和和和和和和和和和「令和
和和和和令和和和和令和和和和和和和令和和
和和和和令和和平平平平平成」令和和和。令
和和和和和。成成。。平成成成成。成。令令
和和和和和和和和和和和。令和和。平平平和
和和和。令和和。和和和和。令令和和和和和
和和和和和和和。平平平和和和和和和和和和
和和和和。成成成成成成成成。令成成成成成
成成成。令令。成成成成成。成成成成成成。
令和。平平和和。令令令和和和和和和和和和
和。"

%w|< > + -|.permutation(4) do |a|
  pp a

  str = input.dup
  str.gsub!("\n", "")
  str.gsub!("平", a[0])
  str.gsub!("成", a[1])
  str.gsub!("令", a[2])
  str.gsub!("和", a[3])
  str.gsub!("「", "[")
  str.gsub!("」", "]")
  str.gsub!("。", ".")

  puts str
end
["<", "-", ">", "+"]
>++++++++++++++++[>+++++>++++>+++++++>++++++>++<<<<<-]>+++.>+++++.--..<----.-.>>+++++++++++.>++.<<<++++.>++.++++.>>++++++++++++.<<<+++++++++++++.--------.>--------.>>.-----.------.>+.<<++.>>>++++++++++.
SECCON{bREIn_WAnic!}

0은? (Misc)



nc zerois-o-reiwa.seccon.jp 23615

SECCON Beginners였던 녀석.
 % nc zerois-o-reiwa.seccon.jp 23615
[1/100]
0=8-?
?=8
[2/100]
0=78*55-?
?=4290
[3/100]
0=40*96+?-3903
?=63
[4/100]
0=56*87+82-?-4879
?=
...

방정식의 솔버를 모르기 때문에 ? 를 총당 수치로 대체하여 eval 했다.
가끔 큰 해로 타임 아웃하는 것이 싫다.
마지막으로 -? 가 올 경우는 탐색할 필요가 없기 때문에, 그것을 넣으면 다녔다.

마지막으로 +? 도 있는 것 같지만 다녔을 때는 우연히 맞는 것 같다.
라스트 2문의 대답이 반드시 0으로 지나가는 것은 令(0)和(0) 무엇일까.
require "pp"
require_relative "pwnlib"

host = "zerois-o-reiwa.seccon.jp"
port = 23615

PwnTube.open(host, port) do |tube|
  j = 1
  loop do
    puts "Stage #{j}:"
    s = tube.recv_until(/0=(.+)\n/)
    s =~ /0=(.+)\n/
    expr = $1

    tube.recv_until("?=")

    puts expr

    ans = nil
    if expr =~ /(.+)-\?$/
      ans = eval($1)
      puts "simple: #{ans}"
    else
      for i in 0..1000
        expr2 = expr.gsub("?", "(#{i.to_s})")
        ret = eval(expr2)
        if ret == 0
          puts "found: #{i}"
          ans = i
          break
        end
      end

      if !ans
        for i in 0..1000000
          expr2 = expr.gsub("?", "(#{i.to_s})")
          ret = eval(expr2)
          if ret == 0
            puts "found: #{i}"
            ans = i
            break
          end
        end
      end
    end

    tube.sendline(ans.to_s)
    j += 1
  end
end
 % ruby zero_sum.rb
[*] connected
Stage 1:
78-?
simple: 78
Stage 2:
31*11-?
simple: 341
Stage 3:
24*?-96-960
found!: 44
Stage 4:
25+45-13*?+307
found!: 29
Stage 5:
?*76+17-5+49-2417
found!: 31
Stage 6:
?+94*33-13+67-74-3129
found!: 47
Stage 7:
90*66+69-?-68*87+35-120
found!: 8
...
Stage 98:
84+6-8*30*47-43+4+80*80-72-53*9+66*84+94-22-9+6*65+97*20-7-68+52*75*10+68-84+53-87*1-17+94*4+19-78*25-89*24+19-64*52+37-44+97*55-99+97*12*23-13+60-42+73*4*92-92+50+18*67-25*99-25+30-29*57+92+72-31*44+64-77*74-97*92+76+44*77-75-2*65+55-50+8*5+32*68-39+99*92-80-15+6*89-88*2+82+11-?
simple: 89475
Stage 99:
79+73*52-1+86-95*55+78-9*84*14+49-81-91+74*71*33-18+1+54*65-13*91+90-42+76-92*19+66*76-62+25*26-67-44*21+56+71-76*65+50-48*52+70-20*93-9*11+11*21+65-31-98+75*59+91-1*7+22*96-25*76-83+42-98*42+29-90+14*32*6-97+61+48*23-20-92+20*52+52-12*82*82-14+38*42+91-62*31+63-69+44-56*98+5*53-?*0-53-76870
found!: 0
Stage 100:
93+57*17-73*87-62+18-64*28+67-60*29+30+36*19-59*72+29-55+70-60*12+23-55*79*61+44-55-31*39+25-23*47+99+89-56*44+94-51*58*17+23-92-19+40*56*26+62-98-33*11+43-11*64+90*31+74-44*34+90-36+64*40-41+65-16*63*9-19+97+43*69-92-1*49+81*71-11+44+87-71*59*12+90-49+65-21*46+78*8-36*13+63-62-81*36+0*?+8-49+325901
found!: 0
Stage 101:
"Congratulations!\nThe flag is SECCON{REIWA_is_not_ZERO_IS}.\n(Enter RETURN key if connection is not disconnected)\n"
[*] connection closed

신원호 발표 (Forensics)



이해하기 쉽다.



PDF에서 이미지를 추출하는 웹 서비스가 있었기 때문에 장미하면





음?

reiwaVote (웹)



야바 녀석 섞여 잔디.





다른 사람의 Writeup


  • htps : // 라고 해서 r. 이 m/x레쿠스/s타츠 s/1123272920917086209
  • htps : // 라고 해서 r. 이 m/x레쿠스/s타츠 s/1123273674348351489
  • htps : // 라고 해서 r. 코m/마y테ぇpぃc/s타츠s/1123271591217876994
  • htps : // 라고 해서 r. 이 m/보노_이파 d/s 타츠 s/1123276699213287426
  • htp://유타 1024. 는 bぉ. jp/엔트리/2019/05/01/022354
  • htps // 쿠스와다. 하테나 bぉg. 코m/엔트리/2019/05/01/022016
  • htps : // 이 m / 쿠사의 _k / 있어 ms / 402에 bf004에 8f9463cb17
  • ht tp // // ft-c로 ps. 하테나 bぉg. 코m/엔트리/2019/05/01/024011
  • htps : // 기 st. 기주 b. 코m/메구미 sh/545019f534392c3에47b8db1에c6212b89
  • htps : // 이 m / 시라 카무 s / ms / 3d3 c5d95c8384cf424
  • htp // ぉr. 조쿠 세이. 코m/엔트리/72/
  • htps : // 라이언 t 예 s. 네 t/네 ws/138
  • htps: // 칸파파. 이 m/토다 y/2019/05/세콘-리와-ctf. HTML
  • htps // ptr 유다이. 하테나 bぉg. 코m/엔트리/2019/05/01/020001
  • 좋은 웹페이지 즐겨찾기