zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    linux中的cd ..和cd -命令有什么区别?
    GCC使用
  • 原文地址:https://www.cnblogs.com/mark-zh/p/11770358.html
Copyright © 2011-2022 走看看