ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Pwnable.kr random 풀이
    Wargame/Pwnable.kr 2019. 7. 22. 23:13

    이번엔 1pt고 웬만해서 이제 혼자 풀어볼라 그랬더니 취약점이 안 보여서 결국 풀이보고 했네요,, random입니다

    코드를 보면 rand() 함수, 난수를 생성하는 함수로 입력받은 key값과 XOR 연산을 해서, 그 값이 0xdeadbeef일 경우 플래그값을 띄우는 코드라고 해석을 할 수 있습니다

    그게 틀린다면 2의 32제곱만큼 경우의 수를 돌려봐야할 거라고 하는데 사실 이 rand() 함수는 취약점이 있대요

    그건 난수를 생성한답시고 출력하는 수는 사실상 한정되어 있다는 것

    진짜 난수를 생성하려면 time함수를 활용해서 이를 시드값으로 줘야 하는데 코드엔 그런 부분이 없으므로 이를 이용합시다

    디버깅해보면 이리 나오는데, 처음에 풀이 안보고 풀라 했을땐 크랙미 풀던게 기억나서 main+59에 bp걸고 실행해서 값 볼라 그랬는데 생각해보니까 좀 아닌거 같아요 네 뭔가 feel이 안 좋음

    그래서 rand 함수부분에 bp 걸고 실행해보겠습니다(b* main+13)

    ? 설명을 먼저 해버렸네

    그럼 일케 뜨는데 어라 rax에 값이 떠야하는데 안 뜨네요 그럼 직후에 bp 한번 더 걸고 continue 해보겠습니다

    이제 잘 뜨네요! 그럼 저 값이 생성된 난수란 말이므로

    그 값과 0xdeadbeef을 XOR 연산해서 결과적으로 입력해야 하는 값을 알게 되었습니다

    이제 보니까 자꾸 엄마아빠 부르는게 플래그값이네요..

     

    2019.7.22

    'Wargame > Pwnable.kr' 카테고리의 다른 글

    Pwnable.kr leg 풀이  (0) 2019.08.07
    Pwnable.kr input 풀이  (0) 2019.08.05
    Pwnable.kr passcode 풀이  (0) 2019.07.22
    Pwnable.kr flag 풀이  (0) 2019.07.22
    Pwnable.kr bof 풀이  (0) 2019.07.22
Designed by Tistory.