curl -h
时间:2019-10-31
本文章向大家介绍curl -h,主要包括curl -h使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在推特上看到国外牛人一行代码收集子域名,仔细看了一下用到的姿势,其中有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 指定请求方法
-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的最后部分当作文件名保存
一、 GET请求查看源码
不加参数时,默认发出GET请求,查看页面源码
curl http://www.baidu.com
二、 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
七、打印Response头信息
-i显示Response头信息,并打印源码,-I的区别是不打印源码,可用于探测服务器信息
curl -I http://www.baidu.com
八、下载文件
-o指定文件名保存,-O将URL的最后部分当作文件名保存
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
九、上传文件
curl -F 'file=@/Desktop/photo.png' https://xxx.com
十、安全测试
不安全的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
原文地址:https://www.cnblogs.com/mark-zh/p/11770358.html
- ListActivity和自定义列表项
- ListView列表数据源——Adapter
- 初识ListView
- 响应Android系统的事件
- ImageSwitcher和TextSwitcher
- Android BLE 基础框架全新改版
- Android 混淆从入门到精通
- 基础篇章:关于 React Native 之 ViewPagerAndroid 组件的讲解
- 基础篇章:关于 React Native 之 DrawerLayoutAndroid 组件的讲解
- Android 使用 ApachePOI 组件读写 Word doc 和 docx 文件
- Android 开发中如何动态加载 so 库文件
- 良心推荐:总结 Android 开发中必备的代码 Review 清单
- 强烈推荐:基于Java反射实现一个 Android ORM 框架
- Android 高效安全的本地广播 LocalBroadcast 完全解析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java实现尺取法
- 【自然语言处理】利用朴素贝叶斯进行新闻分类(自己处理数据)
- mybatis文件映射之select操作返回Map
- shm进程间通信失败了!!!
- Vue3.0 beta源码学习笔记(二)
- 【自然语言处理】使用朴素贝叶斯进行语种检测
- 关于errno的后事妥善处理
- Vue3.0 beta源码学习笔记(三)
- 你会不会分布式系统进程间通信?
- 学以致用C++设计模式 之 “备忘录模式”
- Mybatis学习笔记(三)关联查询以及相关属性
- 学以致用C++设计模式 之 “装饰者模式”
- 学以致用C++设计模式 之 “责任链模式”
- 学以致用C++设计模式 之 “命令模式”
- 学以致用C++设计模式 之 “中介模式”