当前位置: 首页 > news >正文

零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)

最后一期了,感谢大家一直以来的关注,如果您对本系列文章内容有问题或者有更好的方法,请在评论区发送。

介绍

其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据数据流:攻击者----->服务器---->目标地址根据后台使用的函数的不同,对应的影响和利用方法又有不一样PHP中下面函数的使用不当会导致SSRF:file_get_contents()fsockopen()curl_exec()如果一定要通过后台服务器远程去对用户指定("或者预埋在前端的请求")的地址进行资源请求,则请做好目标地址的过滤。你可以根据"SSRF"里面的项目来搞懂问题的原因

个人评价:用起来需要有一定的开发基础

适用场景:有API请求的网站

实际反馈:攻击内网方面作用还是挺大的

一,SSRF(curl)

原理

首先,什么是curl:

Curl是一个开源的命令行工具和库,用于使用各种网络协议传输数据。它支持多种协议,包括HTTP、HTTPS、FTP、FTPS、SMTP、IMAP等。Curl的名称来源于“Client URL”,它最初是作为客户端工具来访问网络资源的。

在SSRF漏洞中,curl是一个常用的工具,它可以帮助服务器向外部发起HTTP请求。如果服务器没有对curl请求的目标地址进行严格过滤,攻击者就可以通过构造恶意的URL,让服务器访问他们指定的地址。

假设你是一家公司的前台,你的工作是帮员工接收和转寄快递。员工们会把需要寄送的快递单(请求)交给你,然后你负责将快递交给快递公司(网络请求)。快递公司会把快递送到指定的地址(目标服务器)。

正常流程

  1. 员工下单:员工给你一张快递单,上面写着收件人的地址(目标服务器的URL)。

  2. 前台转寄:你(服务器)检查快递单,确认地址是公司内部的地址(合法的请求目标),然后通过快递公司(curl工具)将快递寄出去。

  3. 送达:快递公司把快递送到指定的地址,完成任务。

SSRF漏洞(恶意篡改地址)

现在,假设有一个员工(攻击者)心怀不轨,他在快递单上写了一个外部的地址(非法的URL),比如竞争对手公司的地址,或者一个恶意网站的地址。而你(服务器)没有仔细检查地址是否合法,就直接把快递寄出去了。这就是SSRF漏洞的原理。

攻击过程

  1. 篡改地址:攻击者在提交请求时,故意将目标地址改成了一个外部的恶意地址,比如http://evil.com

  2. 服务器转发:服务器(你)没有验证这个地址是否合法,直接通过curl工具向这个地址发起请求。

  3. 攻击者获利:攻击者通过这个恶意地址,可能会让服务器访问一个恶意网站,从而获取服务器的敏感信息,或者利用服务器的权限进行进一步的攻击。

实践

点击内容后我们可以看到是url栏有东西,所以可以用File inclusion远程文件,url重定向方面的知识,但是这里用到curl的内容,这就需要大家继续学习了,在此就不再赘述,列举一些内容,大家可以自行尝试


1,访问百度首页
url=http://www.baidu.com
2,查看本地文件
url=file:///c:/test.txt
3,扫描内网机器的开发端口
url=dict://192.168.198.1
4,模拟请求头
curl -H "User-Agent: MyCustomBrowser" http://example.com

二,SSRF(file_get_content)

原理

首先,什么是file_get_content:

file_get_contents 是 PHP 中的一个函数,用于将整个文件的内容读入一个字符串中。它不仅可以读取本地文件的内容,还可以通过指定 URL 来获取远程文件的内容。

file_get_contents是PHP中一个非常强大的函数,它可以用来读取本地文件的内容,也可以用来获取网络资源的内容。如果攻击者能够控制file_get_contents的参数,利用好可以:

  • 访问外部恶意网站(如http://evil.com)。

  • 访问服务器本地的敏感文件(如file:///etc/passwd)。

  • 访问内网资源(如http://192.168.1.100)。

假设你是一家图书馆的管理员,读者(用户)可以通过填写借书单(发送请求)来借阅图书。你的工作是根据借书单上的书名(目标资源)去书架上(服务器端资源)找到对应的书,并把它交给读者。

正常流程

  1. 读者填写借书单:读者在借书单上写上他想借的书名,比如“《哈利·波特》”(合法的目标资源)。

  2. 管理员找书:你(服务器)根据借书单上的书名去书架上查找这本书。

  3. 交付图书:找到书后,你把书交给读者,完成借阅过程。

SSRF漏洞(通过file_get_contents

现在,假设有个读者(攻击者)在借书单上写了一个奇怪的内容,比如“隔壁图书馆的《哈姆雷特》”(非法的外部资源)。而你(服务器)没有仔细检查借书单上的内容是否合法,就直接去寻找这本书。这就好比服务器通过file_get_contents去请求了一个非法的外部资源,而不是内部允许的资源。

攻击过程

  1. 篡改请求:攻击者在输入中故意写了一个非法的资源路径

  2. 服务器执行:服务器没有验证这个地址是否合法,直接通过file_get_contents去获取这个外部资源的内容。

  3. 攻击者获利:攻击者通过这个恶意地址,可能会让服务器访问一个恶意网站,从而获取服务器的敏感信息,或者利用服务器的权限进行进一步的攻击。

实践

和上面一样改url的内容

比如


查看本地文件
file=file:///C:/test.txt
查看内网内容
file=http://127.0.0.1/pikachu/vul/sqli/1.php

至此皮卡丘靶场讲解系列全部结束,感谢一直以来支持本系列的各位师傅

如果有任何问题可以在评论区询问

相关文章:

  • 字符串字典序最大后缀问题详解
  • 迷宫问题(一)(C++版本)
  • 《高等数学》(同济大学·第7版)第二章第四节“隐函数及由参数方程所确定的函数的导数“
  • linux进程管理之从内存/cpu角度使用setrlimirt/rlimit
  • 【题解-洛谷】P1706 全排列问题
  • 露亦如电 · 时之沙 | 让遗憾在灰烬里随风而去
  • natapp 内网穿透失败
  • windows使用脚本杀死python进程
  • c++ —— 内存管理
  • SWE-Dev:开启自主特征驱动软件开发新纪元,重新定义大模型编码能力边界
  • DAY 44 预训练模型
  • 嵌入式知识篇---Zigbee串口
  • 高保真组件库:数字输入框
  • NT6打印机共享修复工具Fixprint系统补丁
  • Go深入学习延迟语句
  • Python 函数全攻略:函数基础
  • C++课设:简易科学计算器(支持+-*/、sin、cos、tan、log等科学函数)
  • 【MySQL】10.事务管理
  • 滴滴 服务端 面经
  • 【51单片机】2. 进阶点灯大师
  • wordpress 设置版权/seo优化代理
  • 网站建设服务好公司/站长工具seo客户端
  • 电脑网站 源码/深圳seo优化排名优化
  • 查找人网站 优帮云/百度关键词搜索排名多少钱
  • 网站建设最贵多少钱/重庆seo外包平台
  • 黑客入侵网站怎么做/推广网络广告