
[pwnkr] - random
WriteUP
해당 문제와 함께 제공되는 소스코드는 아래와 같다. 해당 내용을 보면 random 변수에 radn() 함수를 이용하여 나수를 저장하고 scanf를 사용하여 key변수에 입력을 받는 그 후 key값과 random값을 xor한 값이 0 xdeadbeef값과 같으면 플래그를 출력해준다. 해당 코드에서 취약점이라 할것은 rand함수이다 해당 함수는 난수를 생성해주지만 해당 매번 생성되는 난수의 값은 일정하다. 즉 한번 난수가 설정되면 그 값은 유지된다 만약 프로그램 실행 시 계속해서 바뀌는 진짜 난수 값을 설정하려면 rand(time(null))로 설정해주어야 한다. 이를 알아내기위해 gdb를 사용했다. rand함수의 실행결과는 eax에 저장되므로 eax는 rbp-0x4부분에 mov 시킨다. 이를 확인하기 위해..