
IDA 를 이용해 열면 위와 같은 그림이 나오고 이를 F5 키를 사용해 코드 형태로 바꿔주면

다음과 같은 main 부분이 나온다. S 라는 문자형 데이터가 존재하고 v5 라는 포인터와 fgets 를 이용해 133byte 까지 받도록 하는 것이 가장 눈에 띈다.
그리고 이 코드 내에 존재하는 함수들을 다 살펴 보았는데

Shell 함수가 눈에 띄었다 이 함수를 이용해 권한을 획득하면 되겠다고 감을 잡았고 shell 함수를 어셈블리어로 보았을 때

시작 주소가 804849B 라는 것을 확인 할 수 있었다


그 후 스택 구조를 살펴 보았는데 위와 같이 s 와 var_c(v5)의 거리 차가 128byte 라는 것을 이용해 128byte 만큼 아무 문자를 집어 넣고 shell 함수를 실행하면 되겠다는 생각을 가졌다. 이후 파이썬으로 간단한 코드를 만들었다

“a”를 128 번 실행 후 shell 코드의 시작 주소 값을 이용해 shell 을 실행시킨다


유후~~
'Security > Pwnable' 카테고리의 다른 글
| [Pwnable] dreamhack basic_exploitation_000 문제 풀이 (0) | 2022.04.21 |
|---|---|
| [Pwnable] HackCTF ROP 문제 풀이 (1) | 2021.01.20 |
| [Pwnable] HackCTF Gift 문제 풀이 (0) | 2021.01.20 |
| [Pwnable] HackCTF Poet 문제 풀이 (0) | 2021.01.20 |
| Dreamhack-Memory Corruption - C(1) (0) | 2021.01.20 |