annyoung

file upload curl to Insomnia api debugger 본문

모의해킹

file upload curl to Insomnia api debugger

nopsled 2022. 7. 6. 12:33

모의해킹 용도로 Insomnia API를 사용하는데, 크롬에서 복사한 Copy As cURL을 Insomnia API에 붙여넣으면 multipart/form으로 선언 되지만 param, value는 들어가지 않는다.

 

그래서 너무 불편해서.. Insomnia API에서 사용하는 multipart/form에 맞춰서 curl을 다시 생성한다.

 

import re
import pyperclip

result = []
lines = pyperclip.paste().split('\n')
print('\n'.join(lines[0:-2]))
for idx, line in enumerate(lines): # throw the --compress option
    if line[2:].startswith('--data-raw'):
        del lines[idx]
        line = line[2:]
        params = re.findall(r'form-data; name=\"(.*?)\"\\r\\n', line)
        values = re.findall(r'\\r\\n\\r\\n(.*?)\\r\\n', line)
        for idx, row in enumerate(params):
            if row.find('filename="') != -1:
                param = row.split('";')[0]
                filename = row.split('filename="')[-1]
                row = f'--form \'{param}=@/{filename}\''
                print(row)
            else:
                print(f'--form \'{row}={values[idx]}\'')

print('--compressed')

 

사용 방법은, 크롬에서 copy as curl 한 다음에 해당 파이썬을 실행시키면 된다.

 

필자는 다음과 같이 사용한다.

 

1. Chrome에서 Copy As cURL로 복사
2. python app.py | pbcopy
3. Insomnia API에 붙여넣기

 

아니면 .bashrc, .zshrc, /etc/profile에 alias를 등록해놓고 bin처럼 사용하면 편하다.

 

필자는 zshell을 사용중이므로 .zshrc에 alias를 위와 같이 등록해놓고 사용중이고. 변경된 .zshrc는 source ~/.zshrc 처럼 사용하면 된다.

 

등록후 사용은 위처럼 curl2insomnia만 쳐주면 자동으로 클립보드에 있는 curl을 insomnia API용으로 만들어준다!

Comments