pwntools 기본 사용법
◎ pwntools 설치
apt-get update
apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pwntools
◎ import
pwntools를 사용하기 위해서 파이썬 스크립트 상단에 import한다.
from pwn import *
from pwn import *
◎ pwntools 연결
1. 원격인 경우 remote (IP,PORT)
(ip는 string이고 port는 int형이다.)
2. 로컬인 경우 process (path) 로컬 상의 실행 파일을 불러온다.
(path는 string이다)
3. ssh(username,ip,port,password)형식으로 사용한다.
(Username,ip,password는 string이고 port는 int형이다.)
◎ pwntools 데이터 받아오기
- recvline
: 한 줄 받아오기, 표준출력에서 한 줄을 읽어서 반환한다.
recvline(“str”)
- recvuntil
: str까지 받아오기, 표준 출력에서 str 이라는 문자열까지 읽어서 반환한다. 괄호 안에 있는 부분까지 데이터를 받는다.
recvuntil(str)
- recv()
: 연결된 대상으로 부터 데이터를 받는 코드이다.
◎ pwntools 데이터 보내기
- send : 표준 입력에 “str”이라는 문자열을 넣어준다
send(“str”)
- sendline(“str”) : 데이터 한 줄 보내기, 표준 입력에 “str\n”이라는 문자열을 넣어준다
sendline(“str”)
▶swing_pwn_chall 풀이
코드
form pwn import *
p = process("./swing_pwn_chall")
for i in range(20)
p.recuntil(":") 문제의 숫자 앞까지 읽어 들이기
x=int(p.recvuntil("+")[:-1]) +앞까지 읽어들이기 첫번째 항 읽기
y=int(p.recvuntil("+")[:-1]) =앞까지 읽어들이기 두번째 항 읽기
ans = x + y 계산히기
p.sendline(str(ans)) 답을 프로그램에 입력
p.interactive()
결과 화면
'보안 > 포너블' 카테고리의 다른 글
포너블 Day5 GDB 실행 과정 (0) | 2021.05.12 |
---|---|
포너블 Day5 GDB설치, 명령어 (0) | 2021.05.12 |
포너블 Day4 collision 문제풀이 (0) | 2021.05.05 |
포너블 Day3 리눅스 특수 권한 (0) | 2021.05.05 |
[포너블 Day1]메모리 구조 (0) | 2021.03.31 |