Pwnable.kr Simple Login
Main을 보면 먼저 입력을 받고 base64 디코딩한 문자열 크기를 v6 변수에 저장한 후에 memcpy(&input, B64DecodeStr, len(B64DecodeStr)) 이런식으로 옮기게 됩니다.
Auth 함수를 봤을 때 memcpy에서 취약점이 터지게 됩니다.
만약 저희가 12크기의 문자열을 넣는다면 sfp를 변조시킬 수 있습니다.
또한 auth 함수를 나가고 바로 leave ret 으로 가기 때문에 주소가 변하지 않는 input 전역변수 주소를 sfp에 넣고 전역변수 + 4 지점에 메인 ret에서 리턴할 주소를 Correct 문으로 넣는 다면 쉘을 딸 수 있습니다.
0x8049278 = Correct address
0x811eb40 = Global variable "input" start address
또한 전에 짜둔 base64 암호화를 이용해 값을 추출하고 쉘을 땄습니다.
Encode : QUFBQXiSBAhA6xEI
'Wargame > ▷ pwnable.kr' 카테고리의 다른 글
[pwnable.kr] unexploitable (0) | 2018.07.08 |
---|---|
[pwnable.kr] Dragon (0) | 2018.07.08 |
[pwnable.kr] passcode (0) | 2018.03.05 |
[pwnable.kr] flag (0) | 2018.01.31 |
[pwnable.kr] bof (0) | 2018.01.31 |