• 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://:/_ 数据 注 :_ 可被除了 $ # 等特殊字符以外的任意字符替
    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 服务器中解析
  • 相关阅读:
    汽车ECU软件升级方案介绍
    vue上传文件夹+上传文件vue-simple-uploader
    验证k8s中HPA功能及测试
    毕业设计 STM32远程车锁控制系统 -物联网 单片机
    数组循环右移(加强版)
    女性排卵期的七个表现,把握住提前当宝妈
    大咖说*计算讲谈社|如何提出关键问题?
    IOS手机耗电量测试
    云服务器搭建Spark集群
    VRRP跟踪接口及认证(华为)
  • 原文地址:https://blog.csdn.net/hakksjss/article/details/138106386