关于ssrf

        首先,先介绍一下ssrf。ssrf即服务器端请求伪造,是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。而且因为请求是由服务端发起的,所以服务端能请求到与自身相连而与外网隔离的内部系统。也就是说可以利用一个网络请求的服务,当作跳板进行攻击,也就是说在这个过程中,网站成为了中间人。

        攻击者利用了可访问Web服务器(A)的特定功能 构造恶意payload;攻击者在访问A时,利用A的特定功能构造特殊payload,由A发起对内部网络中系统B(内网隔离,外部不可访问)的请求,从而获取敏感信息。此时A被作为中间人(跳板)进行利用。

        其次是漏洞的成因:由于服务端提供了从其他服务器应用获取数据的功能,但同时又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。比如,攻击者操作服务端指定URL地址获取网页文本内容,加载指定地址的图片,下载等,利用的就是服务端请求伪造,SSRF利用存在缺陷的WEB应用作为代理 攻击远程和本地的服务器。

攻击方式:       

1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;

2.攻击运行在内网或本地的应用程序(比如溢出);

3.对内网web应用进行指纹识别,通过访问默认文件实现;

4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);

5.利用file协议读取本地文件等。

        这个图我觉得还是比较清晰的

接下来就是在实战中学习了

以ctfhub为例:

第一题,在题目上已经给了提示,让该url

直接在参数这里改也可以,使用bp修改也可以

得到了flag

第二题

是伪协议读取文件,题目也是给了提示

URL伪协议大概有这些:

  • file:///
  • dict://
  • sftp://
  • ldap://
  • tftp://
  • gopher://

这里有大佬教用法的博客

这里要用到第一个,因为一般而言,网站目录就是var/www/htm,尝试构造

进入了这个界面

使用查看器得到了flag

第三题,端口扫描

这里题目一开始就告诉我们了,端口范围在8000-9000,根据这个端口范围其实也可以考虑到爆破了

这里使用bp抓包,送到爆破模块,设置爆破的变量

设置范围,开始爆破

通过爆破结果可知,有一个长度不同的相应数据包

查看回显得到了flag

第四题,POST请求

根据提示可知,可能文件放到了一个网页的目录之下,这里先选择用之前的伪协议来,看一下文件源码

根据提示信息可知,需要从127.0.0.1去访问,修改好以后继续访问

拿到了KEY,这个题目因该就是告诉我需要给服务器发送一个KEY就能得到你想要的东西。但是页面上又什么都没有,这就需要我们构建一个POST请求包来发送这个KEY。

在网上搜索了一下,post请求包的格式

构造

gopher://127.0.0.1:80/_POST /flag.php HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/x-www-form-urlencoded
Content-Length: 36

key=6f56a5dac9b43bb2e3176a68a8917eaa

插入变量,发现有问题

根据回显400,可知,这里出现了语法的错误,这里的状态码是服务器不理解语法,这里我认为应该是,POST请求包里面的内容被拆分开来了,然后被识别错误了

这里进行url编码

gopher://127.0.0.1:80/_POST%2520/flag.php%2520HTTP/1.1%250d%250AHost:%2520127.0.0.1:80%250d%250AContent-Type:%2520application/x-www-form-urlencoded%250d%250AContent-Length:%252036%250d%250A%250d%250Akey=6f56a5dac9b43bb2e3176a68a8917eaaf%250d%250a

再次插入,得到了flag

相关推荐

  1. SSRF漏洞

    2024-05-09 19:36:03       39 阅读

最近更新

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

    2024-05-09 19:36:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-09 19:36:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-09 19:36:03       82 阅读
  4. Python语言-面向对象

    2024-05-09 19:36:03       91 阅读

热门阅读

  1. 【鸿蒙自定义组件的生命周期】

    2024-05-09 19:36:03       28 阅读
  2. 大疆相机获取经纬度 python

    2024-05-09 19:36:03       30 阅读
  3. 2024最新易支付系统【正版免授权】——部署简单

    2024-05-09 19:36:03       38 阅读
  4. Docker 容器日志占用空间过大解决办法

    2024-05-09 19:36:03       35 阅读
  5. 在sql中影响排序,但不改变字段值的方法

    2024-05-09 19:36:03       26 阅读
  6. 面试回答之:如何做接口测试1

    2024-05-09 19:36:03       26 阅读
  7. 1688详情,搜索,店铺,图搜

    2024-05-09 19:36:03       31 阅读
  8. 探索股票量化统计:解析市场数据的秘密

    2024-05-09 19:36:03       30 阅读
  9. docker的使用命令大全

    2024-05-09 19:36:03       28 阅读