接着上次的路程继续在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 旅行日志(二)的更多相关文章

  1. Exploit-Exercises nebule 旅行日志(一)

    exploit-exercises.com provides a variety of virtual machines, documentation and challenges that can ...

  2. Exploit-Exercises nebule 旅行日志(七)

    接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level06了 先看下level06的问题描述: 明确下,这个flag06的账户是从unix继承过来的,什么意思,背景: unix的账户系统 ...

  3. Exploit-Exercises nebule 旅行日志(六)

    接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level05了 先看下level05的问题描述: 从level05的描述上看,是/home/flag05目录的权限有漏洞,看来多半是又跟fl ...

  4. Exploit-Exercises nebule 旅行日志(五)

    接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level04了 先看下level04的问题描述: (level4.c) #include <stdlib.h> #include ...

  5. Exploit-Exercises nebule 旅行日志(四)

    接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level03了 先看下level03的问题描述: 精炼下问题,在/home/flag03的目录下有个crontab的文件是每分钟都在执行 这 ...

  6. Exploit-Exercises nebule 旅行日志(三)

    继续探索之路,经过昨天的题目,忽然有那么点开窍了,今天继续: 看题目,还是用level对应的级别的帐号和密码登录,flag02的程序源码如图上所示,getegid 和 geteuid就不说了,这个程序 ...

  7. COJ 0346 WZJ的旅行(二)更新动态树分治版本

    WZJ的旅行(二) 难度级别:D: 运行时间限制:3000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 时隔多日,WZJ又来到了幻想国旅行.幻想国由N个城市组成,由 ...

  8. 一个轻巧高效的多线程c++stream风格异步日志(二)

    目录 一个轻巧高效的多线程c++stream风格异步日志(二) 前言 LogFile类 AsyncLogging类 AsyncLogging实现 增加备用缓存 结语 一个轻巧高效的多线程c++stre ...

  9. MySQL的日志(二):事务日志

    本文目录:1.redo log 1.1 redo log和二进制日志的区别 1.2 redo log的基本概念 1.3 日志块(log block) 1.4 log group和redo log fi ...

随机推荐

  1. 关于python中loc和iloc方法

    pandas以类似字典的方式来获取某一列的值 import pandas as pd import numpy as np table = pd.DataFrame(np.zeros((4,2)), ...

  2. svn hotcopy backup

    ================== 备份 1/2 ==================svnbackup.bat@echo off@rem Subversion Server 的安装目录set SV ...

  3. Struts 2 执行流程 配置信息

    Struts 2 执行流程 首先,浏览器访问,经过Filter,Filter从src/struts.xml中寻找命名空间和action的名字,获取action类,从方法中拿到返回值,接着从result ...

  4. Qt5OpenGL.顶点像素大小设置

    1. 2. // ZC: 像素点的大小 设置:2种方式: // ZC: (1)代码指定方式 // ZC: (2)GLSL种指定方式[A]只能在顶点着色器种指定,不能在片原着色器种指定[B]代码中还要指 ...

  5. 小程序分享进入H5动态网页

    在要分享的界面加上这段代码 onShareAppMessage: function (options) { var that = this; // var return_url = that.data ...

  6. Idea 里明明配置了Tomcat,但是右上角任然没有Tomcat显示

    问题截图如下: 上图明明配置了Tomcat,但是Idea右上角任然是Add Configurations 因为这个问题,困扰了好久.解决方法: 点击Add Configurations   出现如下界 ...

  7. Fiddler抓取https请求 & Fiddler抓包工具常用功能详解

    Fiddler抓取https请求 & Fiddler抓包工具常用功能详解   先来看一个小故事: 小T在测试APP时,打开某个页面展示异常,于是就跑到客户端开发小A那里说:“你这个页面做的有问 ...

  8. mybatis逆向工程generatorConfiguration详细配置

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguratio ...

  9. 人生苦短,我用python(目录)

    一.python基础篇 python中闭包及延时绑定问题 python中的装饰器.生成器 二.前端 bootstrap框架 BOM&DOM JavaScript中的词法分析 三.数据库 mys ...

  10. redis 高可用

    Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实 ...