• 【CTFHUB】SSRF原理之简单运用(一)


    一、漏洞原理

    SSRF 服务端请求伪造
    原理:在某些网站中提供了从其他服务器获取数据的功能,攻击者能通过构造恶意的URL参数,恶意利用后可作为代理攻击远程或本地的服务器。

    二、SSRF的利用

    1.对目标外网、内网进行端口扫描。
    2.攻击内网或本地的程序或应用
    3.利用file协议读取本地文件
    4.利用get攻击外网或内网的web应用

    三、防御方式

    1.对提交的URL进行过滤,如过滤格式为127.0.0.1的ip
    2.规定结尾的后缀
    3.短链接
    4.@符号
    5.将十进制数改为其他进制
    6.文件上传

    四、常见协议利用

    http:查看内网主机端口是否存在。
    file:读取服务器本地文件,访问本地的静态资源
    dict:协议探测端口和服务指纹,攻击redis,写入定时任务,进行反弹shell
    gopher:发送POST或GET请求,用来攻击内网应用redis,mysql,fastCGI,smtp等

    五、靶场实践

    内网访问

    提示信息:尝试访问位于127.0.0.1的flag.php吧

    首先在网站页面构造一个Payload访问百度,结果是进入到了百度页面,那么说明此处存在SSRF漏洞

    image.png

    根据提示信息,访问127.0.0.1下的flag.php文件

    ?url=http://127.0.0.1/flag.php
    
    • 1

    image.png

    伪协议读取文件

    提示信息:尝试去读取一下Web目录下的flag.php吧
    image.png

    /var/www/html目录是Web服务器(linux)的默认根目录,也被称为Web根目录

    根据提示信息构造payload

    ?url=file:var/www/html/flag.php
    
    • 1

    image.png

    端口扫描

    提示信息:来来来性感CTFHub在线扫端口,据说端口范围是8000-9000哦。

    image.png
    **说明flag是在127.0.0.1网址某个端口下

    构造payload

    ?url/http:127.0.0.1:xxxx #使用burp进行端口爆破,返回拒绝连接错误,说明端口存在
    
    • 1

    1
    在此,根据长度的不同便可知知道此网站的正确的端口为8894


    最终payload

    ?url/http:127.0.0.1:8894
    
    • 1
  • 相关阅读:
    Linux基础-进程管理
    华为OD机试 - 一种字符串压缩表示的解压 - 考生抽中题(Java 2023 B卷 100分)
    Spring注解驱动之ApplicationListener用法
    Java NIO中的Files类的使用
    基于Servlet+jsp+mysql开发javaWeb学生管理系统(学生信息、学生选课、学生成绩、学生签到考勤)
    华为云磁盘挂载
    【C++】日期类的实现
    221.最大正方形
    【洛谷 P5250】【深基17.例5】木材仓库 题解(集合+upper_bound)
    卸载与安装JDK
  • 原文地址:https://blog.csdn.net/Continuejww/article/details/133212692