Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- frida
- NTFS
- 2018
- logstash
- Openstack
- base64
- Volatility
- 파이썬
- vulnhub
- ESXi
- InsecureBank
- Strings
- kibana
- CTF-d
- elasticsearch
- Reflected XSS
- foremost
- igoat
- diva
- SQL Injection
- lord of sql injection
- Suninatas
- XSS
- 인시큐어뱅크
- Docker
- 안드로이드
- beebox
- ctf
- MFT
- otter
Archives
- Today
- Total
Information Security
Stack 0 본문
volatile 함수는 변수를 사용할 때 최적화에서 제외하여 항상 메모리에 접근하도록 하는 함수다. modified 4byte 정수형을 선언하고, buffer 64byte를 선언한다. modified 변수를 0으로 초기화하고, gets() 함수를 통해 사용자로부터 buffer에 입력받는다.
./stack0 AAAA 입력 시 "Try again?" 메시지를 보여준다.
gdb ./stack 0 명령어를 입력 후 main 부분을 확인했다.
break point를 main+42 설정 후 run을 해주고 a 80개를 입력해주었다. 80 바이트 이유는 0x54 - 0x4 =0x50(80) 이기 때문이다.
main+39를 보면 $rbp-0x40로 되어 있다. modfied의 주소이기 때문에 해당 주소를 보면 0x4141414141414141이 들어가 있는 것을 알 수 있다.
레지스트 eax를 확인하면 0x41414141을 확인할 수 있다.
./stack 0 실행 후 80byte를 입력하면 해결되는 것을 알 수 있다.