이 글은 WSL2(Ubuntu)에서 Python으로 Burp Suite의 Proxy 기능을 사용하기 위해 설정을 하는 방법에 대한 내용을 다룬다.
환경
- Host - Windows 10
- WSL2 - Ubuntu18.04
- Burp Suite Community Edition
Export CA Certificate
Burp Suite의 Proxy기능을 이용하기 위해 먼저 인증서 발급을 진행한다.
Burp Suite의 Proxy → Options으로 이동하여 "Import / export CA Certificate" 버튼을 눌러 주면 다음과 같은 화면이 나온다.
여러 옵션 중 Export의 가장 위에 있는 "Certificate in DER format"을 눌러 진행한다.
경로와 이름을 설정한 후 save버튼을 눌러주면 인증서를 발급받을 수 있다.
Add Proxy Listeners
Python코드를 Host인 Windows10에서 실행한다면 기본적으로 설정된 127.0.0.1:8080을 이용해서 진행하면 되지만 WSL2에서 Python코드를 실행하기 때문에 Proxy Listeners를 추가해 주어야 한다.
이를 추가하기 위해 다시 Proxy → Options으로 이동하여 가장 위에 존재하는 Add 버튼을 눌러준다.
"Bind to port:"에는 8080을 추가해준 후 "Bind to address:"의 Specific Address를 선택해주고 옆의 선택창을 눌러주면 다음과 같이 여러 아이피 목록이 나오는 것을 확인할 수 있는데
이 중 WSL에서 사용 중인 아이피를 선택해주면 된다.
아이피는 Host의 CMD에서 ipconfig을 실행하면 "이더넷 어댑터 vEthernet (WSL)"항목을 확인할 수 있는데 해당 항목에 적힌 IPv4 주소로 선택하면 된다.
완료하면 다음과 같이 선택한 아이피:포트가 추가된 것을 확인할 수 있다.
Example
설정이 문제없이 되었는지 확인하기 위해 간단한 예시 코드를 이용하여 확인한다.
import requests
import os
proxy = '172.27.32.1:8080'
os.environ['HTTP_PROXY'] = proxy
os.environ['HTTPS_PROXY'] = proxy
os.environ['REQUESTS_CA_BUNDLE'] = "/mnt/c/Users/okko2/OneDrive/Desktop/Tools/burp/burp_certi"
url = 'https://www.naver.com/'
res = requests.get(url, verify=False)
코드를 실행하면 다음과 같이 Burp Suite의 Intercept에서도 잡히는 것을 확인할 수 있다.
Reference
- python burp suite proxy
https://hackcatml.tistory.com/19 - requests ssl error
https://stackoverflow.com/questions/10667960/python-requests-throwing-sslerror
'Tech > web' 카테고리의 다른 글
XSS Mitigation (1) | 2021.05.23 |
---|