Skip to content

Instantly share code, notes, and snippets.

@akiym
akiym / 000.md
Last active May 19, 2024 05:53
TSG LIVE! 12 CTF writeup

wolf

WOLF RPGエディターで作られたゲーム。起動するとゲームが始まって、配置されている宝箱に触るとflag?と聞いてくる。 Data/MapData/SampleMapA.mpsの中にflag?という文字列があり、おそらくここがflagチェック処理が含まれているバイナリであるがどういったものかは不明。{}QWERTYUIOPASDFGHJKLZXCVBNM_TKTNT}RRUAPRHDSH{SXMREISUAH}RE}PUYPUQYDBQTLKXWCJXTYの文字列が見えるが、適当にxorしてもflagにはならないのでguessは諦める。

https://silversecond.com/WolfRPGEditor/ のエディタでそのまま開けるようだったので処理を読む。\v[0]のような文章を追加するとV0の変数を表示できるのでデバッグが楽。

image

あとは1文字ずつブルートフォースして求めた。

@akiym
akiym / Dockerfile
Last active November 22, 2018 03:18
Reproduction code segmentation fault with --py-autoreload (uwsgi 2.0.17, Python 3.7)
FROM python:3.7-stretch
WORKDIR /app
RUN pip install uwsgi==2.0.17
COPY foobar.py .
COPY __init__.py foo/bar/__init__.py
CMD ["uwsgi", "--http", ":9090", "--wsgi-file", "foobar.py", "--py-autoreload", "1"]
@akiym
akiym / solve.py
Created September 7, 2016 08:30
Cello Rule - Tokyo Westerns / MMA CTF 2nd 2016
# -*- coding: utf-8 -*-
from z3 import *
s = Solver()
seed1 = [BitVec('s1_%d' % i, 64) for i in range(64+1)]
seed2 = [BitVec('s2_%d' % i, 64) for i in range(64+1)]
r1 = BitVec('r1', 64)
r2 = BitVec('r2', 64)
@akiym
akiym / exploit.py
Created September 7, 2016 08:23
shadow - Tokyo Westerns / MMA CTF 2nd 2016
# -*- coding: utf-8 -*-
import os
import sys
import time
import re
import struct
import socket
p = lambda x: struct.pack('<I', x)
u = lambda x: struct.unpack('<I', x)[0]
@akiym
akiym / exploit.py
Created September 7, 2016 08:22
diary - Tokyo Westerns / MMA CTF 2nd 2016
# -*- coding: utf-8 -*-
import os
import sys
import time
import re
import struct
import socket
from pwn import *
context.update(arch='amd64', os='linux')
@akiym
akiym / exploit.py
Created September 7, 2016 08:22
Interpreter - Tokyo Westerns / MMA CTF 2nd 2016
# -*- coding: utf-8 -*-
import os
import sys
import time
import re
import struct
import socket
p = lambda x: struct.pack('<Q', x)
u = lambda x: struct.unpack('<Q', x)[0]
@akiym
akiym / exploit.py
Created September 7, 2016 08:21
greeting - Tokyo Westerns / MMA CTF 2nd 2016
# -*- coding: utf-8 -*-
import os
import sys
import time
import re
import struct
import socket
from libformatstr import FormatStr
p = lambda x: struct.pack('<I', x)
@akiym
akiym / exploit.py
Last active September 6, 2016 16:03
Candy Store - Tokyo Westerns / MMA CTF 2nd 2016
# -*- coding: utf-8 -*-
import os
import sys
import time
import re
import struct
import socket
p = lambda x: struct.pack('<I', x)
u = lambda x: struct.unpack('<I', x)[0]
@akiym
akiym / pwn1.py
Created February 29, 2016 12:40
SSCTF 2016 Quals - Pwn-1, Pwn-2
# -*- coding: utf-8 -*-
import os
import sys
import time
import re
import struct
import socket
p = lambda x: struct.pack('<I', x)
u = lambda x: struct.unpack('<I', x)[0]
@akiym
akiym / exploit2.py
Created July 6, 2015 08:25
魔改造ropasaurusrex writeup #katagaitaiCTF
# -*- coding: utf-8 -*-
import os
import sys
import time
import re
import struct
import socket
p = lambda x: struct.pack("<I", x)
u = lambda x: struct.unpack("<I", x)[0]