시스템 해킹/pwnable

[pwnable.kr] Collision

Lhaaan 2023. 5. 21. 13:23
  • 20byte를 받아서 check_password함수에서 정수형 포인터를 통해 4바이트씩 읽어서 더하는 것을 알 수 있었음
  • 끝에서 hashcode랑 비교를 하게 되는데, 0x21DD09EC랑 일치해야 플래그 값이 출력됨

  • 0x21DD09EC를 임의로 5등분 하게 되면, 이런식으로 나옴
    • 06C5 CEC8 / 06C5 CEC8 / 06C5 CEC8 / 06C5 CEC8 / 06c5 CECC
  • 그러면 이걸 더해서 20바이트 맞춰주면 될거라 생각함
    • 근데 여기서 뻘짓 했던게 ascii 테이블에 있는 문자로 치환해서 넣어야 겠다라고 생각해서 조금 뻘짓을 하게됨..
  • 일단 어셈블리 상으로 보면 check_password+39 부분에서 ebp-0x8에 eax를 다 더하고 나중에 그 값을 eax로 옮긴 뒤 리턴하는 것을 볼 수 있음
  • 따라서 4바이트씩 읽은 것을 다 더해서 리턴해준다라는 문제

  • 마지막에 어떤식으로 인풋을 넣을지 계속 고민하다가 결국엔 다른 블로그 찾아봄
  • 파이썬으로 쉽게 해결가능했었다!..
  • 원리는 다 알았지만 어떤식으로 파이썬을 활용해야하는지 좀 더 알게됨

'시스템 해킹 > pwnable' 카테고리의 다른 글

[pwnable.kr] passcode  (0) 2024.05.09
[pwnable.kr] dragon  (0) 2023.07.07
[pwnable.kr] fd  (0) 2023.05.21
[DreamHack] oob1  (0) 2023.05.21
[DreamHack] SSP01  (0) 2023.05.13