HACKCTF - g++ pwn
해당 gpwn프로그램을 실행하면 단순하게 입력을 받고 입력받은내용을 출력시켜주는 프로그램입니다. ida를 통해 함수를 봐보면 main함수에서 바로 vuln() 함수라고 알려주는데(취약한함수) 이 함수를 타고 들어가면 이럼 c++로 만들어진 코드를 볼 수 있습니다. 코드를 간략하게 이야기해보면 13번째줄에서 fgets를 사용하는데, 32바이트만큼만 받기떄문에 60바이트인 버퍼를 덮기는 턱없이 부족합니다. 그럼에 16, 18, 19번째줄은 해석해보면 "I" 라는 문자를 "you"라는 문자로 바꾸어주기 때문에 이부분을 이용하면 bof를 해서 ret변조가 가능할 것 같습니다. 즉 dummy[60] + sfp[4] + ret[4] 를 해주면 됩니다. ret주소는 위의 cat flag함수로 지정해줍니다. paylo..
2020.08.14