본문 바로가기

Security study/Pwnable

[2주차 과제] swing_pwn_chall 풀이

apt-get update 
apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential 
python3 -m pip install --upgrade pip "pip<21.0"
python3 -m pip install --upgrade pwntools

-> 4줄의 명령어를 터미널창에 입력해서 우분투에 pwntools를 설치했다.

-> 파란색 글씨는 오류가 너무 많이 나서 구글링을 통해 발견한 해결방법이다.

 

내가 작성한 python 코드

-> 코드에서 아쉬운 점은 변수를 많이 사용했다는 점이다. res에서 바로 int(b)+int(d)를 하면 변수를 적게 사용하면서 가독성이 좋은 코드가 될 것 같다.

(1) 코드 설명

 1. from pwn import * 코드로 pwntools를 사용할 수 있게 한다.

 2. recvuntil(':')으로 문제 번호 뒤의 : 까지 받아온다.

 3. 그 후 같은 함수로 '+' 바로 이전까지 받아와준다.

 4. 그 후 같은 함수로 '=' 바로 이전까지 받아와준다.

 5. res에 b와 d 변수 즉, 3~4번에서 받아온 숫자를 int로 변경한 변수들을 더한 값을 저장해주고 sendline(str(res))로 값을 입력해준다.

6. 2~5번을 20번 반복한다.

 

(2) 성공 화면

'Security study > Pwnable' 카테고리의 다른 글

GDB 사용방법  (0) 2021.05.12
[pwnable.kr] collision 문제 풀이  (0) 2021.05.05
setuid 개념 정리  (0) 2021.05.05
pwntools 사용법 및 기능  (0) 2021.04.28
리눅스 메모리 구조  (0) 2021.03.31