curl 在我的工作上幫助非常大,同時他也是資安測試的好工具,在這邊專門介紹我使用 curl 時會使用到的檢測方式
- -w 檢測網站回應速度
- 一行指令
curl -o /dev/null -s -w "%{time_namelookup},%{time_connect},%{time_starttransfer},%{time_total}" http://www.google.com
- Script
$ vim curl-speed.sh #!/bin/bash URL=$1 curl -o /dev/null -s -w \ "DNS Resolve: %{time_namelookup}\n\ Client -> Server: %{time_connect}\n\ Server Respon: %{time_starttransfer}\n\ Total time: %{time_total}\n" \ "${URL}" $ ./curl-speed.sh www.google.com DNS Resolve: 0.035 Client -> Server: 0.040 Server Respon: 0.069 Total time: 0.069
time_namelookup = DNS 解析時間
time_connect = 建立伺服器 TCP 所花的時間
time_starttransfer = 伺服器 return 的第一個字節
time_total = 整個請求的花費時間
- -o 將網頁內容輸出 file
$ curl -o index.html http://www.google.com
- -x 指令 http 使用 proxy server
$ curl -x 192.168.30.30:8080 http://www.google.com
- -D 把 http response cookie 輸出 file
$ curl -D cookie.txt http://www.google.com
- -A 自定義偽裝 user-agent
$ curl -A "TEST" http://www.google.com
- -e 設定 referrer,簡單來說就是偽裝訪問頁面的來路URL
$ curl -e http://shazi.info http://www.google.com
這樣 www.google.com 的 referrer 就會誤以為是從 http://shazi.info 連過來的。
- -O 下載檔案,用 -c 來續傳
$ curl -O http://fileserver/file1.zip $ curl -O -c http://fileserver/file1.zip
- -r 分段下載
#!bin/bash FILE="file1.zip" URL="http://fileserver/${FILE}" curl -r 0-10240 -o "${FILE}.part1" ${URL} &\ curl -r 10240-20480 -o "${FILE}.part2" ${URL} &\ curl -r 20480-40960 -o "${FILE}.part3" ${URL} &\ curl -r 40960- -o "${FILE}.part4" ${URL}
合併
$ cat file1.zip.part* > file1.zip
- -u 指定登入使用者
$ curl -u user:passwd ftp://fileserver
- -T 上傳檔案,使用 HTTP put method 協議
$ curl -T file1.zip -u user:passwd ftp://fileserver or $ curl -T file1.zip http://fileserver
- 使用 GET mode,直接在 url 加入參數
$ curl http://www.google.com/login.php?user=scott&passwd=0000
- -d 使用 POST mode
$ curl -d "user=scott&password=0000" http://www.google.com
- -E HTTPS 使用憑證
$ curl -E ssl.pem https://www.google.com
- 使用 dict 查詢字典
$ curl dict://server/d:computer