profile image

L o a d i n g . . .

Published 2021. 4. 10. 00:52

1. 문제

#include <stdio.h>
#include <unistd.h>
#include <string.h>
 
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 오류가 발생하는 경우 -> ASLR을 끄고 실습해보기

쉘에서와 gdb 상에서 buf의 주소가 다른 경우 -> 아래 블로그를 참고해서 특정 환경변수를 사용하지 않도록 설정 or nop을 줘서 풀어도 된다.

특정 쉘코드가 안 먹힐 경우 -> 다른 길이 쉘코드 갖다 써보기

 

 

huammmm1.tistory.com/500

 

셸에서 실행할때와 gdb에서 실행할 때 주소가 달라지는 문제

프로그램의 스택 시작 주소를 출력하는 간단한 코드이다. 위 코드를 컴파일 후 실행하면 0xbffff0c8 주소가 출력 된다. 하지만 같은 프로그램을 gdb에서 실행시키면?? 그림에서 보이는 것 처럼 0xbfff

huammmm1.tistory.com

 

'Hacking > Pwnable' 카테고리의 다른 글

[P4C] Pwnable problem 2 - writeup  (0) 2021.04.10
[P4C] Pwnable problem 2  (0) 2021.04.10
[Pwnable] python으로 인자 및 stdin 전달  (0) 2021.04.01
[Pwnable] Lazenca - ROP(x64) 정리  (0) 2021.03.30
[Pwnable] Lazenca - ROP(x86) 정리  (0) 2021.03.29
복사했습니다!