일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Variable Partition
- hackerschool
- AjouUniv #Whois #정보보안교육
- python
- 사이버보안학과
- Dreamhack
- 스케줄링
- Allocation Starategy
- Whois #AjouUniv #정보보안교육 #Pwnable
- N0NamedWargame #mandu-mandu #forensics #left_side_B
- N0NamedWargame #AjouUniv #mandu-mandu #forensics
- AjouUniv #SuniNatas #Web
- N0Named
- systemhacking
- AjouUniv #Whois #Reversing
- Whois #정보보안교육 #webhacking.kr
- N0NamedWargame #mandu-mandu #forensics #길에서주어온만두
- 아주대학교
- 운영체제
- SuNiNaTaS #mandu-mandu #AjouUniv #forensics
- Pwnable
- Whois #정보보안교육 #AjouUniv #Pwnable
- ftz
- 코딩도장
- Whois #정보보안교육 #Ajou
- webhacking
- Memory Virtualization
- 아주대학교 #Whois #정보보안교육 #4주차
- HackCTF
- AjouUniv #Whois #정보보안교육 #Pwnable
- Today
- Total
chipkkang9's story
[Whois 정보보안교육] Part-time Job 문제풀이 본문
준비물
IDA Pro 7.0, Linux 작업환경 (본인은 kali linux를 사용함)
IDA Pro – Hex Rays
Substantial changes Is to be expected in every release: new features, supported processors, etc which are all added after deliberation and discussion.
hex-rays.com
문제소개
문제풀이
포너블 교육 마지막 3주차 2번째 문제
Part-time Job이라는 문제이다.
C언어에서의 Integer Issue,
int 정수형 자료형의 Overflow, Underflow를 사용하는 문제였다.
IDA를 통해 문제 파일을 열어보면 다음과 같다.
첨부해놓은 코드 맨 아래쪽에 else 이후 부분은
이전에 나왔던 "You earn # points!"와 같은 부분이 반복되는 코드였다.
문제를 해결하기 위해 주목해야 하는 부분은 system("/bin/sh");
함수가 들어가 있는 while문 부분이다.
while문 속에 있는 if문을 보면
v3에 999를 넣어주어야 하고,
이와 동시에 v4에는 4억이 넘는 값을 넣어주어야
system함수가 실행되어 쉘 권한을 가져온다고 말하는 코드이다.
일단 리눅스에서 프로그램을 실행시켜보았다.
처음에 주어진 포인트는 30으로, v4를 출력한 것이다.
1. PC방 알바
2. 레스토랑 알바
3. 학교 근로 알바
4. 쉼
방법은 두 가지가 있을 것이다.
하나는 알바를 4억번 정도 해서 point 4억을 넘겨주는 것이고
다른 하나는 극단적으로 쉬어서 Integer Underflow를 발생시켜 4억을 넘겨주는 방법이다.
아무래도 후자가 똑똑한 방법일 것이다.
한 번 극단적으로 동면을 취해보겠다.
쉬기만 했는데 4억이 들어오다니,,, 이런 개꿀이 없다.
우선 v4의 조건을 만족시켜줬으니, 뒤의 scanf에 v3의 값을 999로 넣어주면
shell을 성공적으로 얻어낸 것을 볼 수 있다.
그럼 곧바로 cat flag를 입력해주면?
flag가 잘 출력되는 것을 확인할 수 있다.
'CTF > Pwnable' 카테고리의 다른 글
[HackCTF] Basic_BOF #2 문제 풀이 (0) | 2021.12.28 |
---|---|
[HackCTF] Basic_BOF #1 문제 풀이 (0) | 2021.12.28 |
[Whois 정보보안교육] canacode 문제풀이 (0) | 2021.11.29 |
[Whois 정보보안교육] assemlator 문제풀이 (0) | 2021.11.29 |
[Whois 정보보안교육] passcode 문제풀이 (0) | 2021.11.29 |