RTL

    [Hack CTF - RTL_core]

    Execute 문제를 실행시키면 passcode를 입력하라고 한다. 당연히 모르므로 실패가 뜨는 것을 확인 할 수 있다. Analyze 보호기법을 확인해보면 NXbit만 걸려있는 것을 확인 할 수 있다. 문제이름이 RTL인 만큼 해당기법을 사용하지 않을까 싶다. Main Line 8 : s변수에 gets함수를 통해 입력을 받는다. Line 9~13 : if문으로 통과 조건은 check_passcde의 return값이 hashcode와 같은 경우이다. Core 해당함수는 dlsym함수를 통해 prinf함수의 address를 v5에 저장한 이우 해당 값을 leak 해준다. Printf의 address를 기반으로 이후 exploit을 짤 때 참고 하면 될 것 같다. Check_passcode 앞서 확인한 if..

    [Hack CTF - yes or no]

    Execute 파일을 실행해보면 문자가 들어 올 때와 숫자가 들어왔을 때 결과가 다르게 나온다. 또한 앞선 문제들과 다르게 libc.so파일을 함께 제공한다. Analyze 현재 Nxbit가 걸려있으므로 shellcode를 직접 올려서 공격은 불가능 할 것 같다. 일단 프로그램에서 어느 부분을 공격해야 할지 확인하기 위해 IDA를 통해 확인해보자 Main main함수를 보면 복잡하다기 보다는 if문과 변수들이 난장판으로 사용되고있어서 알아보기 힘들다. 먼저 핵심만 보자면 해당 로직이 참일 경우 gets함수를 사용해 s에 입력을 받는데 여기서 buffer overflow를 발생 시킬 수 있을 것이다. Nxbit가 걸려있으나 main 이외에 ret를 변조해서 shell을 획득할수 있을 만한 함수들은 보이지 ..