보안 6

[NOX2018] - believeMe

fsb가 발생한다. flag를 출력해주는 함수도 있다. fflush의 got를 덮으면 될 것 같았지만 noxFlag 함수에서도 fflush를 사용하면서 루프에 빠지게 된다. 문제에서 aslr이 꺼져있다는 정보를 통해서 stack leak을 하고 ret의 주소에 fsb를 통해 덮으면 될 것 같다. local에서 계산한 offset을 통해 ret지점을 계산해 내려고 했지만 서버의 offset과 차이가 있어서 반복을 통해 ret 주소를 얻어 낼 수 있었다.

보안/CTF 2023.03.18

[NOX2018] - TheNameCalculator

read 함수에서 bof 가 발생해서 v4를 덮는것이 가능하다. 이를 통해 if 문에 맞는 값으로 v4를 덮어 secretFunc 함수를 실행가능하다. 글자수만큼 반복문이 돌아가면서 buf에서 +1 씩 주소가 증가하면서 0x5F7B4153과 xor 연산을 한다. 그리고 마지막에 fsb가 발생한다. flag를 얻을 수 있는 superSecretFunc 함수가 있다. fsb를 통해 exit got overwrite를 해주면 main 에서 exit 함수를 호출할 때 exploit이 가능하다.

보안/CTF 2023.03.17

[Toddler's Bottle]passcode

login 함수에 scanf("%d", passcode1) 부분을 보면 passcode1에 저장된 값에 입력 값을 저장하게 된다. 그리고 welcome 함수에서 100byte를 입력 받는데 마지막 4byte가 passcode1의 영역이다. 즉 4byte 만큼 원하는 위치(passcode1 에 입력한 위치)에 값을 입력하는 것이 가능해진다. ​ login 함수에 scanf("%d", passcode1) 이후에 실행될 아무 함수의 GOT를 system("/bin/cat flag") 부분으로 Overwrite 해주면 클리어다! ​

보안/Pwnable.kr 2023.03.12