curl -h

在推特上看到國外牛人一行代碼收集子域名,仔細看了一下用到的姿式,其中有curl,碰巧看到阮一峯大牛的curl用法指南文章,因而決定總結一下curl。php

一行代碼收集子域名html

for h in $(cat hosts.txt); do curl -siL https://$h|egrep -io  "[0-9a-z_\-\.]+\.([0-9a-z_\-]+)?`echo $h|awk -F '.' '{print $(NF-1)}'`([0-9a-z_\-\.]+)?\.[a-z]{1,5}"|sort -fu ; done

curl用法示例bootstrap

-X 指定請求方法
-x 指定HTTP請求的代理
-H 指定請求標頭
-d 發送POST請求提交的數據,使用-d參數後,會自動將請求轉爲POST,HTTP請求會自動加上標頭Content-Type : application/x-www-form-urlencoded,可省略-X POST
-v 顯示http通訊的整個過程
-u 設置服務器認證的用戶名和密碼

-i 顯示Response頭信息,並打印源碼
-I 顯示Response頭信息,不打印源碼

-s 不輸出錯誤和進度信息
-S 指定只輸出錯誤信息

-L 自動跳轉,curl默認不跟隨跳轉
-k 跳過SSL檢測

-o 文件名 保存
-O 將URL的最後部分看成文件名保存

1、 GET請求查看源碼

不加參數時,默認發出GET請求,查看頁面源碼安全

curl http://www.baidu.com

2、 POST提交登陸表單

以dvwa登陸爲例:-H添加請求頭,-L開啓自動跳轉,-i打印請求頭和頁面源碼,能夠看到歡迎界面源碼。服務器

curl  -i -L -H'Cookie: security=impossible; PHPSESSID=dm4a5af6tntekl7jlfi7pl42b3' -H'Host: 10.211.55.4' -d'username=admin&password=password&Login=Login&user_token=6c2b5b838ed4e555e11cc40a63010e6c' http://10.211.55.4/dvwa/login.php

3、 添加HTTP請求頭

設置User-Agent繞過服務器訪問代理檢測,可用於爬蟲欺騙app

curl -H'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:69.0) Gecko/20100101 Firefox/69.0'

設置Host繞過主機頭檢測,替代更改host文件的繁瑣操做curl

curl -H'Host: xxxx' IP

4、指定代理訪問

-x指定代理,可用於IP被拉黑時繞過IP檢測post

curl -x 127.0.0.1:8080 http://www.baidu.com

5、跳過SSL檢測

curl -k

6、自動跳轉

curl -L

7、打印Response頭信息

-i顯示Response頭信息,並打印源碼,-I的區別是不打印源碼,可用於探測服務器信息測試

curl -I http://www.baidu.com

8、下載文件

-o指定文件名保存,-O將URL的最後部分看成文件名保存url

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

9、上傳文件

curl -F 'file=@/Desktop/photo.png' https://xxx.com

10、安全測試

不安全的HTTP方法

curl -X OPTIONS http://xxx.com

查看curl支持的協議

$ curl-config --protocols
DICT
FILE
FTP
FTPS
GOPHER
HTTP
HTTPS
IMAP
IMAPS
LDAP
LDAPS
POP3
POP3S
RTSP
SMB
SMBS
SMTP
SMTPS
TELNET
TFTP

端口探測

$ curl 127.0.0.1:21
220 pyftpdlib 1.5.5 ready.
$ curl ftp://127.0.0.1 21
curl: (67) Access denied: 530
curl: (7) Access denied: 530

參考 http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

相關文章
相關標籤/搜索