[P4C] pwnable problem writeup1
2021. 4. 29. 18:17
Hacking/Pwnable
팀원분들이 직접 제작하신 포너블 문제를 풀어보는 시간이다. (한수님이 제작하신 문제들에 대한 롸업이다.) 1번 문제) 문제 이름을 입력받고, 멘트를 출력한다. 플래그를 찾아야 될 듯 싶다. gets() 를 통해 입력을 받는데, bof 가 발생한다. bof 를 통해서 ret 를 flag() 함수 시작주소로 변경해주면 될 것 같다! 문제 해결 과정 필요한 것들을 구해보자! 버퍼와 ret 간 offset : 108 byte flag() 시작주소 : 0x8049182 페이로는 다음과 같을 것이다. "A"*108 + 0x8049182 "A"*108 + 0x8049182 익스플로잇 2번 문제) 이번에도 flag 를 찾아야될 듯 싶다. 3번 문제) 문제 1. getenv 를 통해 "FLAG" 라는 환경 변수 주소를 ..
[P4C] Pwnable problem 3
2021. 4. 27. 14:55
Hacking/Pwnable
1. 문제 #include #include void get_shell(){ system("/bin/sh"); } void welcome(){ printf("Welcome to pwnable world!\n"); } void main(){ void (*call)() = welcome; char buf[30]; fgets(buf, 38, stdin); call(); } 2. 컴파일 gcc -o problem problem.c -fno-stack-protector -fno-pie -mpreferred-stack-boundary=2 -m32 다음과 같이 컴파일 해준다.
[P4C] Pwnable problem 2
2021. 4. 10. 01:48
Hacking/Pwnable
1. 문제 #define _GNU_SOURCE #include #include #include void vuln(){ char buf[30] = ""; void (*read_addr)() = dlsym(RTLD_NEXT, "read"); printf("I'll give you some hint\n"); printf("read address : %p\n", read_addr); read(0, buf, 90); } void main(){ printf("do you know RTL?\n"); vuln(); } 다음과 같이 빌드해줍니다. gcc -m32 -fno-stack-protector -o problem problem.c -ldl 2. HINT NX bit + ASLR이 적용된 상황에서 어떻게 RTL 기법..
[P4C] Pwnable problem 1
2021. 4. 10. 00:52
Hacking/Pwnable
1. 문제 #include #include #include void vuln(char src[]){ char buf[50]; strcpy(buf, src); printf("buf_addr : %p\n", buf); } void main(){ char src[100]; printf("Do you know Return to Shellcode?\n"); printf("Enter Please :)\n"); read(0, src, 100); vuln(src); } 다음과 같이 빌드해줍니다. gcc -o problem problem.c -fno-stack-protector -fno-pie -z execstack -mpreferred-stack-boundary=2 -m32 2. HINT segmentation 오류가..
[Pwnable] python으로 인자 및 stdin 전달
2021. 4. 1. 17:42
Hacking/Pwnable
1. shell에서 python으로 바이너리에 stdin 전달 (python -c 'print "A"*10';cat) | 2. shell에서 python으로 바이너리에 인자 전달 ./program `python -c 'print "A"*10'` 3. gdb에서 python으로 바이너리에 stdin 전달 r < 만약 로컬이 아닌 서버에 접속해야 할 경우, 뒤에 | nc (접속정보) 를 붙여준다.