가끔 pwnable문제를 풀 때 ctf 환경, nc서버 환경을 만들어줘야 하는 문제들이 있는데, 데몬에 올린다던지, nc -e 옵션을 이용한다던지 다양한 방법들이 있지만 이번엔 socat이라는 것을 이용해 보려고 한다. 매우 간단하다. socat TCP-LISTEN:port,reuseaddr,fork EXEC:path 를 이용하면 된다. socat TCP-LISTEN:9999,reuseaddr,fork EXEC:./dance port를 지정해주고 binary의 위치를 적어주면 된다. 접속은 nc를 이용하면 된다. 바이너리가 실행되는 것을 확인 할 수 있다.
plt 나 got 위치는 쉽게 구할 수 있다. 이 글에서 말하고자 하는 것은 printf나 puts 함수들의 name문자열도 메모리에 위치하고 있다. hyomin@ubuntu:~/baobob/ctf/gadi/pwn/dance_$ objdump -h ./dance ./dance: file format elf64-x86-64 Sections:Idx Name Size VMA LMA File off Algn 0 .interp 0000001c 0000000000400238 0000000000400238 00000238 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .note.ABI-tag 00000020 0000000000400254 0000000000400254 00000254..
https://github.com/niklasb/libc-database 이 곳에서 git clone을 이용해서 다운 받을 수 있다. 처음에 설치 해주면 libc들을 수집 해야한다. ./get을 실행하면 자동으로 libc들을 수집해준다. ./add [libc path] 해서 수동으로 추가 할 수도 있다. libc 파일을 찾을려면, ./find [함수이름] [함수주소] [함수이름] [함수주소]하면 된다. // 하위 3바이트만 입력해도 된다. 이렇게 하면 id와 libc 정보를 알 수 있다. offset을 구하려면 ./dump [위에 나온 libc정보] 하면 offset을 구할 수 있다. ./dump [위에 나온 libc정보] [함수주소] 하면 원하는 함수의 offset을 구할 수 있다. 참고로 ./get ..
https://filippo.io/linux-syscall-table/
옵션기능 -m32 32bit로 컴파일 -fstack-protector(-all)ssp 보호기법 켜기 -fno-stack-protectorssp 보호기법 끄기 -W,-Wall모호한 코딩에 경고를 보냄 -S어셈블리 파일 생성 -std=[c표준]지정한 c표준으로 컴파일 -l[라이브러리] 해당 라이브러리를 링크 -shared공유 라이브러리를 우선 링크 -static정적 라이브러리를 우선 링크 -s 심볼 테이블 제거 -Wl,-z,relro,-z,nowFull Relro 보호기법 적용 -e [name]시작 심볼을 name심볼로 사용 -M 심볼들의 정보르 자세히 출력 -fno-builtin단독으로 링크(표준lib 링크 X) -mpreferred-stack-boundary=2더미 없애기 (32bit = 2, 64bit..
보다 힙을 잘 이해하기 위해서 직접 코드를 작성하여 malloc과 free과정에서의 heap chunk의 구조와 변화하는 과정을 분석하였다. gdb를 이용해서 분석해보도록 하자. 나는 gdb의 상위 버전인 gef를 이용했다.그리고 64bit 기준으로 컴파일/분석하였다. 32비트는 직접해보길 바란다. 먼저 내가 작성한 코드이다.>>heapstruct.c1234567891011121314#include #include #include int main(int argc, char *argv[]){ char* buf = (char*)malloc(256); char* buf1 = (char*)malloc(512); strcpy(buf, argv[1]); strcpy(buf1, argv[2]); printf("%s\..
- TLS
- fastbin
- exit
- glibc
- hacking
- pwnable
- 해킹
- 본선가고싶다
- pwnable.tw
- ebp change
- pwable
- tcache
- heap
- SQLi
- HackCTF
- rt_sigreturn
- oob
- fsop
- stack reusing
- srop
- FSB
- shellcoding
- overflow
- codegate
- fastbindup
- Total
- Today
- Yesterday