문제 설명 파일을 보면 위와 같이 코드가 나와있다. getbuf() 함수의 return 주소를 buffer overflow를 사용해 덮어씌워, getbuf()를 호출한 test() 대신 touch1()로 돌아가도록 만드는 것이 우리의 목표다. 먼저 코드를 disasse
이번에는 touch2()라는 함수를 실행시켜야 한다. 그런데 level 1과 달리 그냥 실행시키기만 해서 끝이 아니고, 다음 코드가 정상적으로 끝날 수 있도록 val이 cookie와 일치하도록 해주어야 한다.우선 cookie가 어디 저장되어 있는 값인지를 확인해봐야겠다
Level 3는 다음과 같은 두 함수를 사용한다.Level 2와 유사하게 val의 값을 cookie에 따라 맞춰야 하는 것인데, 이 과정에서 hexmatch()라는 함수를 사용한다. 통과하기 위해서는 포인터 sval이 가리키는 문자열 \*sval이 val과 일치해야 한
Level 4와 5는 ctarget이 아닌 rtarget 파일을 공격해야 한다. ctarget과는 다르게 address randomization을 사용하여 내가 삽입한 코드가 메모리의 어느 위치에 들어가는지를 예측하고 공격할 수 없으며, stack memory는 실행이
Attack lab의 마지막 단계 level 5이다. Level 4와 마찬가지로, 이번에는 level 3와 동일한 문제이나 제한조건으로 인해서 gadget들을 이용한 코드를 짜야 한다.Level 3의 풀이를 기억해보자. sval이라는 포인터가 우리의 쿠키 값을 담은 문