RTL

    [Pwnable] RTL_Core

    250점 첫 문제다 :D 바로 풀어보자 NX bit만 enabled 되어 있고 Partial RELRO가 걸려있다. 실행시키면 패스코드를 입력하라는 문자열과 함께 아무 값이나 입력하면 실패! 라고 알려준다 아이다로 열어보자 입력값 s가 인자로 들어가는 check_passcode의 리턴값이 hashcode와 같게 되면 core 함수가 실행된다. hashcode는 0x0C0D9B0A7 (3235492007)이다. check_passcode를 살펴보자 반복문을 살펴보면 v2 += 0 + a1 v2 += 4 + a1 v2 += 8 + a1 v2 += 12 + a1 v2 += 16 + a1 그 후 v2를 리턴해준다. 그렇다면 v2의 값이 hashcode (3235492007)와 같아져야 한다. 그럼 hashcod..

    [Pwnalbe] 1996

    오늘은 1996이라는 문제를 풀어볼거다. 굉장히 쉬운 문제였던거 같다. NX bit가 enabled 되어 있고 partial relro가 걸려있어 _DYNAMIC 섹션에 write 권한이 없다. 바로 아이다로 열어보자 c++ 바이너리이다. 우선 "Which environment variavle do you want to read"라는 문자열을 출력해주고 getenv로 name에 입력을 받는다 하지만 getenv에서 length check를 해주지 않으니 BOF가 터질거 같다. 취약점은 파악했으니 어떤 방식으로 익스를 해야될지를 생각해봐야된다. 위에서 이 문제가 어렵지 않다고 한 이유가 쉘을 띄워주는 함수가 내장되어 있다. 그럼 익스 코드를 쉽게 구상할 수 있다. buf [0x410] + SFP [0x8]..