일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Reversing
- KAPPA
- simples.kr
- C++
- 암호화
- 알고리즘
- ebp
- public
- class
- fix
- pwnable
- Bookstore
- 리버싱
- AES
- 풀이
- Codegate
- cliford
- rijndael
- 포너블
- cin
- pwnable.kr
- window
- SEH
- namespace
- Z3
- cout
- CTF
- writeup
- plaid
- plaidctf
Archives
- Today
- Total
목록ebp (1)
yokkkkk
Plaid 2015 - ebp
쉬웠는데.. main 나가서 쉘이 실행되도록 코드를 짜서 한참 고생했다. fgets..ㅠ [그림 1] fgets 보다시피 buf에 1024를 받는다. [그림 2] fsb 여기서 딱 봐도 포맷스트링버그를 써주십시오. 하는것 같다. 이것은.. 쉽게 ebp 핸들링을 통해서 익스가 가능하다. [그림 3] 스택상황 이것이 snprintf 할때 스택인데, cf3c 부분이 ret가 된다. 따라서 cf3c부분의 값을 쉘코드의 주소로 하면 된다. 포멧스트링 버그의 특성상 0xffffcf3c 이 스택에 저장되어 있어야 %n이나, %hn을 통해 출력갯수를 저장이 가능하다. 여기에선 딱히 그런부분이 없다. 따라서 임의의 값을 조작하도록 한다. [그림 4] 스택변조 0xffffcf38을 0xffffcf3c로 가르키게 했다. 위..
ctf
2017. 3. 14. 17:07