Pwnstar

Pwnable.kr random 본문

Pwnable.kr/Toddler's Bottle

Pwnable.kr random

포너블처돌이 2020. 3. 15. 21:25

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