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)

       (ipstring이고 portint형이다.)

    2. 로컬인 경우 process (path) 로컬 상의 실행 파일을 불러온다.

       (path string이다)

    3. ssh(username,ip,port,password)형식으로 사용한다.

       (Username,ip,passwordstring이고 portint형이다.)

 

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

+ Recent posts