CURL 활용하기

2020. 3. 10. 20:04·Security_ETC
728x90

CURL 버전 확인

$ curl --version

curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

파일 다운로드

$ curl -O https://^_^.com/file.tar.gz         # file.tar.gz 로 저장
$ curl -o down_file.tar.gz https://^_^.com/file.tar.gz    #down_file.tar.gz로 저장

-C 옵션을 사용해 이어받기를 할 수 있다. 중요한건 -C뒤에 -를 붙여야한다.

# 무언가 받는 중간에 Ctrl+C로 연결을 종료한다.
$ curl -O https://^_^.com/some_text.txt

# -C 옵션을 통해 이어 받기 할 수 있다.
$ curl -C - -O https://^_^.com/some_text.txt

두개 이상의 파일은 이렇게 다운한다.

$ curl -O https://^_^.com/some_text.txt -O https://^_^.com/yeah.txt

파일에 있는 URL로 부터 다운로드 하기

$ cat list.txt
https://a.co.kr/a.txt
https://b.co.kr/b.txt
https://c.co.kr/c.txt

$ xargs -n 1 curl -O < list.txt # 이렇게 하면 파일안의 URL로 부터 다운할 수 있다.

다운로드 속도 제한 걸기

$ curl --limit-rate 100K https://^_^.com/somefile -O # 100KB/s 속도로 제한할 수 있다.

프로토콜 디버깅

verbose와 trace, --trace-ascii를 사용해 HTTP 통신 과정에 대한 상세정보를 확인할 수 있다.

verbose로 불충분하면 trace-ascii를 사용하면된다.

디버깅 정보는 debug.dump에 저장된다.

$ curl --trace-ascii debug.dump https://some-server.com/test

GET

GET으로 데이터요청을 할 수 있다.

$ curl https://^_^.com/
$ curl https://^_^.com/some.php?id=1&pw=1

POST

POST 방식으로 데이터를 body에 담아서 전송할 수 있다. -d,--data옵션을 사용해 데이터를 보낼 수 있다. 또는 파일을 읽어서 body로 보낼경우 -d @<filename>을 하면 된다.

$ curl -d "name=jijijiji&age=20&address=Seoul ... .. ." https://^_^.com/some.php
$ curl -X POST https://^_^.com/some.php -d @some_file.json -H "Content-Type: application/json"

파일업로드

$ curl -F upload=@some.tar.gz -F "username=jijijiji" https://^_^.com/

User Agent

$ curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" https://^_^.com/

HTTP Header Dump

-D(--dump-header) <filename> 로 헤더 정보를 파일로 보낼 수 있다. filename을 -로 하면 헤더를 표준출력할 수 있다.

$ curl -D header.txt https://^_^.com/

헤더정보만 출력

$ curl https://^_^.com/ -I

헤더 정보 추가하기

$ curl -H "something: something" https://^_^.com/

자료 출처

https://www.joinc.co.kr/w/Site/Tip/curl

저작자표시 비영리 변경금지 (새창열림)

'Security_ETC' 카테고리의 다른 글

개인정리  (0) 2019.08.09
fflush 귀찮을때  (0) 2019.07.18
'Security_ETC' 카테고리의 다른 글
  • 개인정리
  • fflush 귀찮을때
J1W0N
J1W0N
jijijiji
  • J1W0N
    JIWON
    J1W0N
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • PROGRAMMING N
        • PYTHON
        • JS
        • 알고리즘
        • React N
      • WEB
        • LOS
        • rubiya
      • PWN
        • pwnable.tw
        • pwnable.kr
        • CTF
        • TIP
        • wargame
        • 읽자
        • HITCON_Training
      • Security_ETC
      • REVERSING
      • 할 것 정리
      • 잡담
        • 끄적끄적
        • 영어일기
      • 정보
      • 정리
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
J1W0N
CURL 활용하기
상단으로

티스토리툴바