Pwnstar
Pwnable.kr random 본문
6번째 문제 random이다.
일단 접속을 해보자.
우선 64비트 파일이고, NX만 걸려있다.
음 코드를 보니 rand()함수로 임의의 값을 random 변수에 넣고, 입력받은 key 값을 xor 연산하여 0xdeadbeef와 같으면 flag를 볼 수 있을 것 같다. random 변수가 랜덤으로 정해지는 거면 이 값을 어떻게 파악을 해야하나..고민을 하다가 rand함수에 대해 찾아보았다.
rand()함수는 매번 다른 값을 생성하지 못하고, srand함수와 함께 사용해야 seed값이 매번 달라져 다른 값을 생성한다는 것이다.
즉, 이 문제에서는 srand함수를 사용하지 않으므로 rand 함수는 항상 같은 값을 가지고 있다.
gdb로 확인을 해 보았다. rand함수를 호출하는 부분에 break point를 걸고, 그 ni로 진행시킨 후, rax의 값을 확인해보았다.
몇번을 확인해도 같은 값이 나왔다. 이제 저 값과, 0xdeadbeef를 xor 연산하면 입력해야하는 값이 나올 것이다.
자 이제 입력해보자.
성공!!
'Pwnable.kr > Toddler's Bottle' 카테고리의 다른 글
Pwnable.kr mistake (0) | 2020.03.15 |
---|---|
Pwnable.kr input (0) | 2020.03.15 |
Pwnable.kr passcode (0) | 2020.03.15 |
Pwnable.kr flag (0) | 2020.03.03 |
Pwnable.kr bof (0) | 2020.03.02 |
Comments