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

Wargames与bash知识11

Wargames与bash知识11

bandit19

关卡提示:
要获得对下一级别的访问权限,您应该使用家目录中的setuid二进制文件。在不带参数的情况下执行它,以了解如何使用。在使用setuid二进制文件后,可以在通常的位置(/etc/bandit_pass)找到密码。

查看/etc/bandit_pass/ bandit20权限,此文件仅bandit20用户可读

bandit19@bandit:~$ cd /etc/bandit_pass/
bandit19@bandit:/etc/bandit_pass$ ls -l bandit20
-r-------- 1 bandit20 bandit20 33 Oct  5 06:19 bandit20

查看系统变量:PATH

bandit19@bandit:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

先查看bandit20-do权限,果然设置setuid的权限(第四位s)

bandit19@bandit:~$ ls -Al
total 28
-rwsr-x--- 1 bandit20 bandit19 14876 Oct  5 06:19 bandit20-do
-rw-r--r-- 1 root     root       220 Jan  6  2022 .bash_logout
-rw-r--r-- 1 root     root      3771 Jan  6  2022 .bashrc
-rw-r--r-- 1 root     root       807 Jan  6  2022 .profile

使用bandit20-do文件验证使用方法,注意使用./ bandit20-do运行命令

bandit19@bandit:~$ ./bandit20-do
Run a command as another user.   #用另一个用户运行命令Example: ./bandit20-do id
bandit19@bandit:~$ ./bandit20-do id
uid=11019(bandit19) gid=11019(bandit19) euid=11020(bandit20) groups=11019(bandit19)
bandit19@bandit:~$ ./bandit20-do whoami
bandit20
bandit19@bandit:~$ ./bandit20-do cat /etc/bandit_pass/bandit20
VxCazJaVykI6W36BkBU0mJTCM8rR95XT
bandit19@bandit:~$

相关知识介绍

内核为每个进程维护的三个UID值。这三个UID分别是RUID(Real UID,实际用户ID)、EUID(Effective UID,有效用户ID)、SUID(Saved Set-user-ID,保存的设置用户ID)。
UID:真实的用户ID 进程的UID就是其创建者的用户
RUID, 用于在系统中标识一个用户是谁,当用户使用用户名和密码成功登录后一个UNIX系统后就唯一确定了他的RUID.
EUID, 用于系统决定用户对系统资源的访问权限,通常情况下等于RUID。
SUID,用于对外权限的开放。跟RUID及EUID是用一个用户绑定不同,它是跟文件而不是跟用户绑定。
只有进程的创建者和root用户才有权利对该进程进行操作。于是,记录一个进程的创建者(也就是属主)就显得非常必要。
EUID,用来确定进程对某些资源和文件的访问权限。在大多数情况下,进程的UID和EUID是一样的 —— 除了著名的setuid程序。
setuid 例如:passwd命令,这个命令允许用户修改自己的登录口令。但是密码保存在/etc/shadow文件中,这个文件对普通用户是不可读的,那么用户怎么能够通过修改shadow文件来修改自己的口令呢?这就是setuid的妙处了。通过ls -l passwd 可从passwd的属性看到,权限位中有个s,这就是suid。去掉s可用chmod u-s /usr/bin/passwd
setuid通过使passwd在执行阶段具有文件所有者(也就是root)的权限,让用户临时有了修改shadow文件的能力(当然这种能力是受到限制的)。因此,passwd就是一个经典的setuid程序,其UID是当前执行这个命令的用户ID,而EUID则是root用户的ID(也就是0)。当非root用户调用passwd修改密码时,此时的euid将会变为passwd的拥有者用户,即root用户,这样就可以修改密码了。
Linux id命令
用于显示用户的ID,以及所属群组的ID。id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
参数说明:
-g或–group  显示用户所属群组的ID。-G或–groups  显示用户所属附加群组的ID。-n或–name  显示用户,所属群组或附加群组的名称。-r或–real  显示实际ID。-u或–user  显示用户ID。-help  显示帮助。-version  显示版本信息。

相关文章:

Wargames与bash知识11

Wargames与bash知识11 bandit19 关卡提示: 要获得对下一级别的访问权限,您应该使用家目录中的setuid二进制文件。在不带参数的情况下执行它,以了解如何使用。在使用setuid二进制文件后,可以在通常的位置(/etc/bandit…...

Python 基础(一):基本语句

目录 1 条件语句2 循环语句2.1 for 循环2.2 while 循环2.3 break2.4 continue 3 pass 语句 1 条件语句 在进行逻辑判断时,我们需要用到条件语句,Python 提供了 if、elif、else 来进行逻辑判断。格式如下所示: if 判断条件1:执行语句1... el…...

Hibernate实战之操作MySQL数据库(2024-1-8)

Hibernate实战之操作MySQL数据库 2024.1.8 前提环境(JavaMySQLNavicatVS Code)1、Hibernate简介1.1 了解HQL 2、MySQL数据库建表2.1 编写SQL脚本2.2 MySQL执行脚本 3、Java操作MySQL实例(Hibernate)3.1 准备依赖的第三方jar包3.2 …...

【Spring Boot 3】【数据源】自定义JDBC多数据源

【Spring Boot 3】【数据源】自定义JDBC多数据源 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术…...

番茄工作法

番茄工作法是一种时间管理方法,主要适用于专注工作。它的基本步骤包括: 设定一个25分钟的闹钟。默念三二一(321法则),开始全身心投入工作。用专注的状态高效工作25分钟,不允许走神。如果做到了步骤3&#…...

【uniapp】调用阿里云OCR图片识别文字:

文章目录 一、效果&#xff1a;二、实现&#xff1a; 一、效果&#xff1a; 二、实现&#xff1a; 【阿里官方】高精版OCR文字识别【最新版】-云市场-阿里云 <template><view class"container"><!-- 选择图片 --><button click"imageO…...

软考高级选择考哪个好?

&#x1f4d2;软考高级总共5个科目&#xff0c;同样是高级证书&#xff0c;认可度也有区别! 大家一般在「信息系统项目管理师」✔️和「系统架构设计师」✔️二选一 1️⃣信息系统项目管理师 ❤️信息系统项目管理师也叫「高项」&#xff0c;考试内容主要是「项目管理」相关&am…...

在云服务器ECS上用Python写一个搜索引擎

在云服务器ECS上用Python写一个搜索引擎 一、场景介绍二、搜索引擎的组成2.1 网页的爬取及排序2.2 用户使用搜索引擎进行搜索 三、操作步骤3.1 环境准备3.2 安装Anaconda3.3 安装Streamlit3.4 下载搜索引擎代码3.5 运行搜索引擎 四、常见问题4.1 运行setup.py时可能的问题4.2 如…...

Python在智能手机芯片研发

Python在智能手机芯片研发中扮演着重要的角色。以下是几个方面的重要性&#xff1a; 快速原型设计&#xff1a;Python具有简洁易读的语法和丰富的第三方库&#xff0c;使工程师能够快速构建原型和进行快速迭代。这对于芯片研发来说&#xff0c;可以加快开发速度&#xff0c;减少…...

K8S学习指南(70)-K8S中的informa机制

引言 在 Kubernetes 集群中&#xff0c;Informer 是一种重要的机制&#xff0c;用于监控和处理集群中资源对象的变化。它是基于观察者模式设计的&#xff0c;允许开发者注册对某类资源对象的关注&#xff0c;并在对象发生变化时得到通知。本文将深入介绍 Kubernetes 中的 Info…...

「MCU」SD NAND芯片之国产新选择优秀

文章目录 前言 传统SD卡和可贴片SD卡 传统SD卡 可贴片SD卡 实际使用 总结 前言 随着目前时代的快速发展&#xff0c;即使是使用MCU的项目上也经常有大数据存储的需求。可以看到经常有小伙伴这样提问&#xff1a; 大家好&#xff0c;请问有没有SD卡芯片&#xff0c;可以…...

【QML COOK】- 002-添加一个图片

1. 编辑main.qml import QtQuickWindow {width: 800height: 800visible: truetitle: qsTr("Hello World")Image {anchors.fill: parentsource: "qrc:/Resources/Images/arrow.png"} }将Window的width和height都改成800&#xff0c;因为我们要添加的图片大…...

Java10:内部类

7 内部类&#xff08;了解&#xff09;7.1 成员内部类7.2 静态内部类7.3 局部内部类7.4 匿名内部类 2.3. 静态内部类2.4. Lambda表达式&#xff0c; 7 内部类&#xff08;了解&#xff09; 内部类&#xff1a;就是在一个类的内部再定义一个类。 分类&#xff1a; 成员内部类 静…...

PostgreSQL 支持的字段类型

PostgreSQL 支持多种字段类型&#xff0c;以下是 PostgreSQL 13 版本中支持的所有字段类型&#xff1a; 数值类型&#xff1a; smallint&#xff1a;小整数类型。integer&#xff1a;整数类型。bigint&#xff1a;大整数类型。decimal&#xff1a;精确小数类型。numeric&#x…...

npm报错error:03000086:digital envelope routines::initialization error

可能是因为node版本过高&#xff0c;与现在的项目不符合 这是降低node版本的命令&#xff0c;然后重新运行 npm install npm8.1.2 -g...

el-table 展开行表格,展开的内容高度可以变化时,导致的固定列错位的问题

问题描述 一个可展开的表格&#xff08;列设置了type“expand”&#xff09;&#xff0c;并且展开后的内容高度可以变化&#xff0c;会导致后面所有行的固定列错位&#xff0c;图如下&#xff0c;展示行中是一个树形表格&#xff0c;默认不展示子级&#xff0c;点击树形表格的…...

python插入排序

插入排序&#xff08;Insertion Sort&#xff09;是一种简单直观的排序算法。它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常使用in-place排序&#xff0…...

怎么将营业执照图片转为excel表格?(批量合并识别技巧)

一、为何要将营业执照转为excel表格&#xff1f; 1、方便管理&#xff1a;将营业执照转为excel格式&#xff0c;可以方便地进行管理和整理&#xff0c;快速查找需要的信息。 2、数据处理&#xff1a;Excel可以提供丰富的计算和数据分析功能&#xff0c;转化为excel后方便数据…...

关于java数组Arrays类

关于java数组Arrays类 前面的文章中&#xff0c;我们了解了数组创建方法等&#xff0c;我们本篇文章来了解一下数组的方法类Arrays&#xff0c;有了这个类&#xff0c;我们在日常写代码的时候就不不用自己去手动创建方法了&#x1f600;。 Arrays类 数组的工具类java.util.A…...

LeetCode-58/709

1.最后一个单词的长度&#xff08;58&#xff09; 题目描述&#xff1a; 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 思路&…...

LSP4J-MCP:连接语言服务器与AI的协议桥接器实践

1. 项目概述&#xff1a;当LSP遇上MCP&#xff0c;一场开发工具链的“协议融合”如果你是一名长期与IDE打交道的开发者&#xff0c;无论是写Java、TypeScript还是其他语言&#xff0c;大概率都听说过或者用过语言服务器协议。它让VS Code、IntelliJ IDEA这些编辑器能理解代码、…...

大核小核架构的演进:从DVFS到异构计算,应对先进制程挑战

1. 项目概述&#xff1a;大核小核架构的十字路口在移动计算和嵌入式领域&#xff0c;ARM的“大核小核”&#xff08;big.LITTLE&#xff09;架构在过去十年里几乎成了高性能低功耗的代名词。从智能手机到平板电脑&#xff0c;再到如今的物联网边缘设备&#xff0c;这套将高性能…...

Chromatic:掌握Chromium/V8的终极通用修改器,开启浏览器调试新纪元

Chromatic&#xff1a;掌握Chromium/V8的终极通用修改器&#xff0c;开启浏览器调试新纪元 【免费下载链接】chromatic Universal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器 项目地址: https://gitcode.com/gh_mirrors/be/chromatic 还在为浏览器调…...

【JSON-RPC远程过程调用组件库】测试报告

RPC 框架测试报告一、项目背景 本项目是一个基于 C 实现的轻量级 RPC&#xff08;远程过程调用&#xff09;框架&#xff0c;旨在解决分布式系统中服务间通信的复杂性。框架提供三大核心能力&#xff1a;基础 RPC 远程调用&#xff08;同步/异步/回调三种模式&#xff09;、基于…...

测水位·报雨情·预洪水:水文监测站

水文监测站采用先进平面阵列雷达微波探测技术&#xff0c;设备悬空架设、非接触式采集河道水体数据。通过高精度雷达天线持续发射微波信号&#xff0c;穿透空气介质触达水面后反射回波&#xff0c;系统精准测算信号传播时长与多普勒频移变化&#xff0c;结合设备自带角度校准功…...

Temu 批量视频更新效率:10 分钟搞定全店素材,抢占内容流量高地

2026 年 Temu 平台内容化流量分配机制全面落地&#xff0c;商品视频权重持续攀升&#xff0c;成为决定搜索排名与转化效果的核心变量。但多数卖家仍受困于手动逐个上传视频的低效模式&#xff0c;错失流量红利。凌风工具箱基于 Temu 官方 API 开发的批量视频更新功能&#xff0…...

对比 Codex 和 Claude Code

要在使用千问或 DeepSeek 等国产模型的前提下&#xff0c;对比 Codex 和 Claude Code&#xff0c;这已经不是一个简单的“二选一”问题&#xff0c;而是一个关于聪明“组合”的选题。虽然它们的设计理念差别很大&#xff0c;但在国产大模型强大的适配能力和高性价比面前&#x…...

别再用Excel解方程了!手把手教你用C++实现高斯消元法(附洛谷P3389模板题实战)

从数学公式到AC代码&#xff1a;高斯消元法的竞赛级C实现 在算法竞赛和科学计算中&#xff0c;线性方程组求解是一个无法回避的经典问题。当你面对洛谷P3389这样的模板题时&#xff0c;是否曾困惑于如何将教科书上的数学步骤转化为高效的C代码&#xff1f;本文将彻底打破理论与…...

保姆级教程:用KIT_A2G_TC397_5V_TFT开发板快速上手CAN FD通信(附接线图)

保姆级教程&#xff1a;用KIT_A2G_TC397_5V_TFT开发板快速上手CAN FD通信&#xff08;附接线图&#xff09; 最近在车载通信项目中频繁接触CAN FD协议&#xff0c;发现很多工程师对硬件连接和基础配置存在畏难情绪。恰好手头有英飞凌KIT_A2G_TC397_5V_TFT这块开发板&#xff0c…...

当FanControl风扇集体“罢工“:从系统诊断到完美修复的技术探险

当FanControl风扇集体"罢工"&#xff1a;从系统诊断到完美修复的技术探险 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/G…...