[pwnable.xyz] SUS
Wargame/pwnable.xyz
Single User StorageAttachmentThe Bugcreate_user()에서 지역 변수인 name의 주소를 cur에 넣는다. create_user()가 종료된 이후에 cur에 접근하면 더 이상 존재하지 않는 스택 프레임에 접근하게 된다.Exploitedit_usr()에서 age를 입력받기 위해 read_int32()를 호출하는데, 이때 스택에 저장된 cur의 name 포인터를 덮어쓸 수 있다.name 포인터를 임의의 주소로 덮어쓰면 그 주소에 임의의 0x20바이트 값을 입력할 수 있다. atoi()의 GOT에 win()의 주소를 넣으면 플래그를 획득할 수 있다.from pwn import *r = remote("svc.pwnable.xyz", 30011)sla = r.sendlineaft..