SSRF漏洞

参考:https://cloud.tencent.com/developer/article/1561355
http://t.csdn.cn/moXj6

原理

SSRF(Server-Side Request Forgery,服务器端请求伪造)
形成的原因:大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。即以存在 SSRF 漏洞的服务器为跳板取得其他应用服务器的信息。

phpstudy

ssrf(curl)

php 中支持 libcurl 库允许和各种的服务器使用各种类型的协议进行连接和通讯。
libcurl 目前支持 http、https、ftp、gopher、telnet、dict、file 和 ldap 协议。libcurl 同时也支持 HTTPS 认证、HTTP POST、HTTP PUT、 FTP 上传 (这个也能通过 PHP 的 FTP 扩展完成)、HTTP 基于表单的上传、代理、cookies 和用户名 + 密码的认证。

  • 一些终于的函数

    函数名 含义
    curl_close() 关闭一个 curl 会话
    curl_copy_handle() 复制一个 curl 句柄和它的所有选项
    curl_errno() 返回最后一次错误号
    curl_error() 返回一个保护当前会话最近一次错误的字符串。
    curl_escape() 返回转义字符串,对给定的字符串进行 URL 编码。
    curl_exec() 执行一个 cURL 会话。
    curl_file_create() 创建一个 CURLFile 对象。
    curl_getinfo() 获取一个 cURL 连接资源句柄的信息。
    curl_init() 初始化一个 cURL 会话。
    curl_multi_add_handle() 向 curl 批处理会话中添加单独的 curl 句柄。
    curl_multi_close() 关闭一组 cURL 句柄。
    curl_multi_exec() 运行当前 cURL 句柄的子连接。
    curl_multi_getcontent() 如果设置了 CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流。
    curl_multi_info_read() 获取当前解析的 cURL 的相关传输信息。
    curl_multi_init() 返回一个新 cURL 批处理句柄。
    curl_multi_remove_handle() 移除 curl 批处理句柄资源中的某个句柄资源。
    curl_multi_select() 等待所有 cURL 批处理中的活动连接。
    curl_multi_setopt() 设置一个批处理 cURL 传输选项。
    curl_multi_strerror() 返回描述错误码的字符串文本。
    curl_pause() 暂停及恢复连接。
    curl_reset() 重置 libcurl 的会话句柄的所有选项。
    curl_setopt_array() 为 cURL 传输会话批量设置选项。
    curl_setopt() 设置一个 cURL 传输选项。
    curl_share_close() 关闭 cURL 共享句柄。
    curl_share_init() 初始化 cURL 共享句柄。
    curl_share_setopt() 设置一个共享句柄的 cURL 传输选项。
    curl_strerror() 返回错误代码的字符串描述。
    curl_unescape() 解码 URL 编码后的字符串。
    curl_version() 获取 cURL 版本信息。
  • 利用
    根据多种支持协议进行利用

  1. file 协议
    读取本地文件,利用 FILE 协议读取本地文件
1
file:///路径
  1. http/https 协议

    看到还有博主探测内网主机端口,没太懂,等我学习学习
访问量 访客