接着上次的路程继续在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. git push时报错:Updates were rejected because the tip of your current branch is behind

    出现这样的问题是由于:自己当前版本低于远程仓库版本 有如下几种解决方法: 1.使用强制push的方法: git push -u origin master -f 这样会使远程修改丢失,一般是不可取的, ...

  2. CAP原则和BASE定理

    CAP原则和BASE定理 分布式系统 来自个人OneNote 以CAP理论为基础的三种解决方案 1.两阶段提交 所谓的两个阶段是指:第一阶段:准备阶段(投票阶段)和第二阶段:提交阶段(执行阶段). 准 ...

  3. Nginx 504 Gateway Time-out分析及解决方法

    一.场景还原php程序在执行抓取远程图片库并保存至本地服务器的时候,出现了“504 Gateway Time-out”错误提示. 问题定位:由于图片巨多,所以下载时间很长(10分钟以上),引起网关超时 ...

  4. idea for Mac for循环快捷键

    1.itar 生成array for代码块 for (int i = 0; i < array.length; i++) { = array[i]; } 2.itco 生成Collection迭 ...

  5. Unity外包 UE4外包 项目案例平台开通通知

    长年承接Unity外包 UE4外包,大家好,本公司团队已将案例上传至专门的案例官网. 欢迎联系我们索取,谢谢! 有项目外包请联系QQ:372900288 索取案例.

  6. 从Scratch到Python——Python生成二维码

    # Python利用pyqrcode模块生成二维码 import pyqrcode import sys number = pyqrcode.create('从Scratch到Python--Pyth ...

  7. intelliJ idea常用快捷键 mac版

    目录 coding project coding Command + P 显示方法参数信息 Command + N 自动生成getter.setter.hashCode.equals.toString ...

  8. 一梦江湖费六年——QQ群聊天分析

    本文结构: 一.那些年我们加过的QQ群 二.数据读入和整理(一)--来自蓝翔的挖掘机 二.数据读入和整理(二)--你不知道的事 三.聊天宏观(1)--寤寐思服 三.聊天宏观(2)日月篇 三.聊天宏观( ...

  9. canvas连线特效

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. JDBC中execute、executeQuery和executeUpdate的区别

    Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语句所产生的内容决定. 1>方法e ...