Buffer Overflow15 Poet 1. Mitigation Partial RELRO와 NX enabled인거 말고는 특별한 것은 없다. 2. 문제 확인 프로그램을 실행시키면 한 줄의 시를 쓰라고 입력을 받고 저자를 묻는다. 입력하고 난 후 시의 내용과 점수를 출력하고 1000000점을 획득하라고 한다. IDA로 분석 해보자. main 함수 영역을 보면 get_poem, get_author, rate_poem 그리고 puts와 reward 함수가 있다. get_poem 함수부터 차례로 하나씩 보자. 먼저 get_poem 함수는 시의 내용을 입력받는 부분이다. 내용을 입력바고 dword_6024E0 부분을 0으로 초기화 시키고 입력 값을 리턴한다. get_author 함수는 저자를 입력을 받고 리턴한다. rate_poem 영역은 get_po.. 2021. 3. 19. RTL_World 1. Mitigation GOT Overwrite가 가능하고 실행 권한이 없다. 2. 문제 확인 프로그램을 실행시켜 보면 NPC의 설명이 나오면서 골드와 여러가지의 메뉴가 나온다. 우리의 목표는 바이너리 보스를 죽이는거 같다. 1. 보스의 정보를 알려주는 메뉴 2. 돈을 얻는 메뉴 3. 시스템 아머를 얻는다는데 아마도 시스템 주소를 Get하는 메뉴인거 같다. 4. 쉘 스워드는 쉘 주소를 Get하는 메뉴인거 같다. 5. 5번 메뉴를 통해 공격을 시도 할것이다. 우리의 추측이 맞는지 IDA로 좀더 자세하게 분석해보자. 3. 풀이 메인 함수 영역에서 여러가지 동작을한다. 1. NPC의 메시지가 출력해준다. 2. while문에서는 메뉴를 통해 입력을 받는데 1번을 입력하면 메모리 보호기법 유무와 버퍼의 주소 버.. 2021. 3. 16. BOF_PIE 1. Mitigation RELRO : Partial RELRO GOT Overwrite가 가능하다. PIE, NX enabled Code 영역을 포함한 모든 메모리 영역을 랜덤하게 매핑되고, 실행 권한이 없다. 2. 문제 확인 프로그램을 실행시키면 Hello, Do you know j0n9hyun? j0n9hyun is 주소가 출력된다. 입력 값을 입력하면 Nah...라는 문자를 출력하고 종료한다. 3. 풀이 IDA를 통해 함수 영역을 살펴보면 j0n9hyun 함수와 welcome 함수가 있는 것 을 확인할 수 있다. welcome 함수에서 welcome 함수의 주소를 출력해주고 그 다음 입력을 받는다. v1은 ebp로 부터 0x12만큼 떨어진 곳에 있다. 즉 18 바이트이다. 입력을 통해 리턴주소를 .. 2021. 3. 16. Simple_Overflow_ver_2 1. Mitigation 2. 문제 확인 프로그램을 실행시키면 Data에 입력을 받고 주소가 출력되면서 데이터가 출력되고 다시 입력할건지 안할껀지 물어보고 y를 선택하면 다시 입력받고 아니면 프로그램을 종료한다. 주소가 출력되는것을 보면 출력된 주소가 버퍼의 주소임을 의심해볼 수 있다. 자세한건 IDA를 통해 확인해 보자. 3. 풀이 메인함수의 코드 부분을 보면 예상했던데로 출력해주는 주소는 버퍼의 주소이다. 코드의 흐름을 살펴보면 데이터를 입력받고 버퍼의 주소와 데이터를 출력해준뒤 다시 입력할지 말지 물어본다. 그렇다면 버퍼 주소를 출력해주니 이를 통해 쉘코드를 입력하고 리턴 주소를 버퍼의 주소로 실행 흐름을 조작해주면 될것이다. exploit from pwn import * r = remote('ct.. 2021. 3. 16. 이전 1 2 3 4 다음