Exploit-Exercises nebule 旅行日志(二)
接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level01了
先看下level01的问题描述:

目标还是要能运行getflag这个可执行的程序,但如果直接运行是不行的,会提示:
getflag is executing on a non-flag account, this doesn`t count
原因是这个是执行权限是root,如果用level01登录后是不具备对应的权限的,好!那么就要通过题目给的程序来代替我们执行getflag,为什么?
因为这个程序通过setresgid和setresuid获得了同级别于root权限的能力,但如果直接运行,只能得到:and now what?这个答案,不是结果
若是写过python的朋友一定会对/user/bin/env非常眼熟,是的,通常在linux系统下的py脚本会带上:#!/user/bin/env python,这个意味着:
echo是一个对应的命令,那么这个命令怎么和getflag联系起来?bingo!symbolic link:
ln -s /bin/getflag echo
如果这个时候接着运行./flag01还是没有用的,因为虽然软连接上了,但是在执行的时候,是通过查找对应的环境变量中的执行地址,echo $PATH:

命令行还是会去寻找真正的echo来执行显示的功能,并不会理会我们创建的软连接,所以还是建立我们目录来触发/tmp/echo
执行后,再运行,成功!
然而,这并不是真正好玩的,知道了env会去找对应优先的目录,那么直接可以:

这就是这个hack的意义所在,你可以通过环境变量指定要运行的命令要优先在哪里搜索,然后在这个目录下编辑这个命令,赋值成:/bin/bash 或者/bin/sh,这样在当前目录下运行命令时
会优先找到我们自己定义的echo这个命令,从而启动sh或者bash,而这个bash或者sh的权限就可以是你要找的flag01或者跟root同级的帐号!
Exploit-Exercises nebule 旅行日志(二)的更多相关文章
- Exploit-Exercises nebule 旅行日志(一)
exploit-exercises.com provides a variety of virtual machines, documentation and challenges that can ...
- Exploit-Exercises nebule 旅行日志(七)
接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level06了 先看下level06的问题描述: 明确下,这个flag06的账户是从unix继承过来的,什么意思,背景: unix的账户系统 ...
- Exploit-Exercises nebule 旅行日志(六)
接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level05了 先看下level05的问题描述: 从level05的描述上看,是/home/flag05目录的权限有漏洞,看来多半是又跟fl ...
- Exploit-Exercises nebule 旅行日志(五)
接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level04了 先看下level04的问题描述: (level4.c) #include <stdlib.h> #include ...
- Exploit-Exercises nebule 旅行日志(四)
接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level03了 先看下level03的问题描述: 精炼下问题,在/home/flag03的目录下有个crontab的文件是每分钟都在执行 这 ...
- Exploit-Exercises nebule 旅行日志(三)
继续探索之路,经过昨天的题目,忽然有那么点开窍了,今天继续: 看题目,还是用level对应的级别的帐号和密码登录,flag02的程序源码如图上所示,getegid 和 geteuid就不说了,这个程序 ...
- COJ 0346 WZJ的旅行(二)更新动态树分治版本
WZJ的旅行(二) 难度级别:D: 运行时间限制:3000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 时隔多日,WZJ又来到了幻想国旅行.幻想国由N个城市组成,由 ...
- 一个轻巧高效的多线程c++stream风格异步日志(二)
目录 一个轻巧高效的多线程c++stream风格异步日志(二) 前言 LogFile类 AsyncLogging类 AsyncLogging实现 增加备用缓存 结语 一个轻巧高效的多线程c++stre ...
- MySQL的日志(二):事务日志
本文目录:1.redo log 1.1 redo log和二进制日志的区别 1.2 redo log的基本概念 1.3 日志块(log block) 1.4 log group和redo log fi ...
随机推荐
- 说说Python中的闭包
Python中的闭包不是一个一说就能明白的概念,但是随着你往学习的深入,无论如何你都需要去了解这么一个东西. 闭包的概念 我们尝试从概念上去理解一下闭包. 在一些语言中,在函数中可以(嵌套)定义另一个 ...
- 大数据: 完全分布式Hadoop集群-HBase安装
HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库.它是面向列的,并适合于存储超大型松散数据.HBase适合于实时,随机对Big数据进行读写操作的业务环境. 本文基 ...
- .net core 运行时事件(Runtime Events)
.Net Core 2.2.0 .Net Core 2.2.0已经发布有一段时间了,很多新鲜功能已经有博主介绍了,今天给大家介绍一下运行时事件并附上demo. 运行时事件 通常需要监视运行时服务(如当 ...
- [IoC容器Unity]第三回:依赖注入
1.引言 上节介绍了,Unity的Lifetime Managers生命周期,Unity具体实现依赖注入包含构造函数注入.属性注入.方法注入,所谓注入相当赋值,下面一个一个来介绍. 2.构造函数注入 ...
- LeetCode03 最长无重复子串
题目 给定一个字符串,找出不含有重复字符的最长子串的长度. 解答 刚开始以为只是一遍遍历后来的字符和前面一样便开始算新子串,给的案例都过了,但是卡在了"dvdf" 后来经过重重试验 ...
- tomcat中显示本地图片①(已解决)
解决方案 我直接放源码了. 原理就是:我虽然调用的是虚拟目录,但是会映射到对应路径的实际 第一步:(在tomcat的 server.xml中创建一个虚拟目录) 虚拟目录创建方式: <Contex ...
- centos用YUM装mysql笔记
安装的方法,参考:https://blog.csdn.net/jeffleo/article/details/53559712 注意事项: 1.上面教程中,关于设置密码的地方,SQL语句有误,单引号要 ...
- 获取的输入内容,没有被P标签包裹的文本和元素进行处理
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python学习之读写csv文件(使用pandas)
简介 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序 ...
- 使用js如何设置、获取盒模型的宽和高
第一种: dom.style.width/height 这种方法只能获取使用内联样式的元素的宽和高. 第二种: dom.currentStyle.width/height 这种方法获取的是浏览器渲染以 ...