티스토리 뷰
pwnable/pwnable.kr
[pwnable.kr] Toddler's Bottle - random (1 pt) write-up
ba0bab 2017. 12. 19. 10:17[pwnable.kr] Toddler's Bottle - random (1 pt) write-up
폰케알 random 문제입니다.
서버에 접속 해보겠습니다.
ls명령으로 확인 해보니, flag파일, 실행파일, 코드가 있습니다.
코드를 보겠습니다.
코드는 단순합니다.
random변수는 rand함수로 부터 난수를 받아오고, key값은 입력을 받습니다.
그러고 난 후, key와 random을 xor연산을 합니다.
xor연산 후 0xdeadbeef와 같으면 플래그를 띄어줍니다.
코드에는 srand함수가 없습니다.
그래서, 프로그램을 실행할 때 마다 random변수의 값은 일정합니다.
그렇다면, gdb를 이용해 브레이크포인트를 걸어놓고 random변수의 값을 찾으면 되겠네요.
main+56에서 rbp-0x8과 rbp-0x4 를 xor연산을 수행합니다.
main+33을 보면 rbp-0x8부터 key값이 저장됩니다.
따라서, rbp-0x4가 random의 값이 들어있겠네요.
브레이크포인트를 main+33에 지정하겠습니다.
그런다음 r을 이용해서 프로그램을 실행하고, rbp-0x4의 값을 보겠습니다.
random 값은 0x6b8b4567입니다.
0x6b8b4567 ^ 0xdeadbeef 한 값이 key값이 되야겠네요.
프로그램을 실행시키고, 3039230856을 입력해보겠습니다.
플래그가 나옵니다.
'pwnable > pwnable.kr' 카테고리의 다른 글
[pwnable.kr] Toddler's Bottle - shellshock (1 pt) write-up (0) | 2018.01.01 |
---|---|
[pwnable.kr] Toddler's Bottle - flag (7 pt) write-up (0) | 2017.12.18 |
[pwnable.kr] Toddler's Bottle - collision(3 pt) write-up (0) | 2017.12.18 |
[pwnable.kr] Toddler's Bottle - fd(1 pt) write-up (0) | 2017.12.18 |
[pwnable.kr] Toddler's Bottle - bof(5 pt) write-up (0) | 2017.12.17 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- fsop
- stack reusing
- heap
- codegate
- ebp change
- shellcoding
- overflow
- HackCTF
- 본선가고싶다
- fastbindup
- TLS
- pwnable
- hacking
- FSB
- srop
- oob
- 해킹
- exit
- glibc
- rt_sigreturn
- SQLi
- pwnable.tw
- tcache
- pwable
- fastbin
- Total
- Today
- Yesterday