ssrf漏洞基础

ssrf server-side request forgery
服务端请求伪造 , 由服务器发起请求,服务器提供了向其他服务器索取数据的功能,索取数据的服务器未
对索取主机、索取资源进行限制;
输入 url 访问站点 xxx.com------------ xxx.com 接收请求后 -------- xx2.com 发送索取数据请求
csrf&ssrf: 用户为受害者 & 用户为攻击者
php 中常见于 curl_exec file-get-content 函数使用不当
ssrf 与协议:
<? php
function curl ( $url ){
$ch = curl_init ();
curl_setopt ( $ch , CURLOPT_URL , $url );
curl_setopt ( $ch , CURLOPT_HEADER , 0 );
curl_exec ( $ch );
curl_close ( $ch );
}
@$url = $_GET [ 'url' ];
curl ( $url );
?>
通过 curl 获取资源
url= 任意网站 url
url= 访问自身的敏感文件
读取文件 file:// 绝对路径
探测本地端口 http:// dict://
gopher 协议与 ssrf
使用限制
php>5.3 curl 低版本无法使用, java jdk<1.7
查看自己的 web 服务器是否支持 gopher 协议:
gopher // 协议格式
gopher://<host>:<port>/<gopher_path>_ 数据 注 :_ 可被除了 $ # 等特殊字符以外的任意字符替
gopher 默认端口 70
发送 GET/POST 请求时对特殊符号需要 url 编码
gopher 协议发送 GET 请求数据包
get.php 源码如下
对数据包进行 url 编码
http 数据包中,需要 %0d%0a 来分隔每一行
gopher 协议发送 POST 请求数据包
post 源码如下
注: post 请求需要请求头中的 content-type application/x-www-form-urlencoded
请求体和请求头之间需要两组 %0d%0a
gopher 协议结合 ssrf 漏洞时要对特殊字符等进行二次 url 编码
二次 url
%25%34%37%25%34%35%25%35%34%25%32%30%25%32%66%25%36%37%25%36%35%25%37%34%25%32%6
5%25%37%30%25%36%38%25%37%30%25%33%66%25%36%31%25%33%64%25%33%31%25%33%32%25%33%
33%25%33%34%25%33%34%25%33%34%25%33%35%25%33%35%25%33%35%25%33%35%25%33%35%25%33
%35%25%33%35%25%33%35%25%33%35%25%33%35%25%33%35%25%33%35%25%33%35%25%32%30%25%3
4%38%25%35%34%25%35%34%25%35%30%25%32%66%25%33%31%25%32%65%25%33%31%25%30%64%25%
30%61%25%34%38%25%36%66%25%37%33%25%37%34%25%33%61%25%32%30%25%33%31%25%33%39%25
%33%32%25%32%65%25%33%31%25%33%36%25%33%38%25%32%65%25%33%31%25%33%30%25%32%65%2
5%33%31%25%33%32%25%33%38%25%30%64%25%30%61
一次 url
%47%45%54%20%2f%67%65%74%2e%70%68%70%3f%61%3d%31%32%33%34%34%34%35%35%35%35%35%3
5%35%35%35%35%35%35%35%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%39%
32%2e%31%36%38%2e%31%30%2e%31%32%38%0d%0a
原始数据
GET /get.php ?a = 1234445555555555555 HTTP/1.1
Host: 192 .168.10.128
第一层 url 会在漏洞服务端解析,第二层 url 则在内网的 web 服务器中解析

相关推荐

  1. SSRF漏洞

    2024-04-24 11:16:03       39 阅读
  2. SSRF漏洞详解

    2024-04-24 11:16:03       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-24 11:16:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-24 11:16:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-24 11:16:03       82 阅读
  4. Python语言-面向对象

    2024-04-24 11:16:03       91 阅读

热门阅读

  1. 如何对同一docker注册表使用多个身份验证/登录

    2024-04-24 11:16:03       30 阅读
  2. 深入Spring Boot配置机制:如何高效管理应用配置

    2024-04-24 11:16:03       26 阅读
  3. C++笔记

    C++笔记

    2024-04-24 11:16:03      29 阅读
  4. web server apache tomcat11-16-mbean

    2024-04-24 11:16:03       38 阅读
  5. 算法(哈希表

    2024-04-24 11:16:03       34 阅读
  6. SQL Server 详细使用教程

    2024-04-24 11:16:03       38 阅读
  7. vue2 点击预览本地 word excle pdf 文件

    2024-04-24 11:16:03       36 阅读