Exploit-Exercises nebule 旅行日志(三)
继续探索之路,经过昨天的题目,忽然有那么点开窍了,今天继续:

看题目,还是用level对应的级别的帐号和密码登录,flag02的程序源码如图上所示,getegid 和 geteuid就不说了,这个程序首先的漏洞在于:
1、既然是flag02创建的,就不该让它有被别的用户执行的权限
2、又用了获取环境变量的函数getenv,上次level01中被我们利用了/uesr/bin/env来指定成执行我们自己写的程序,这个次应该也是不例外
既然用了USER这个环境变量,那么直接:USER=/bin/bash
但是执行后,显然是被echo直接把当成字符串输出了,这样不对啊,甚至都有点想直接去改echo了(被上次的思路影响),但是/bin下的echo可是root权限的,你可删除不了哦:


怎么办?我们的思路还是对的,应该还是在USER这个环境变量上下手,但是不能执行成命令啊!被echo。。。等等,命令行下:echo ;test
会显示成,哈哈,那么方法就来了:


你甚至可以USER=';getflag;',这个程序的owner是flag02,这个也可以getflag,上面是用了USER=';/bin/sh;'的方法,下面是运行结果

运行环境变量和命令行下的命令是;是分割符,这个是要转过来的地方
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 旅行日志(二)
接着上次的路程继续在ubuntu下对漏洞的探索练习,这次是level01了 先看下level01的问题描述: 目标还是要能运行getflag这个可执行的程序,但如果直接运行是不行的,会提示: getf ...
- MySQL binlog日志三种模式选择及配置
在认识binlog日志三种模式前,先了解一下解析binlog日志的命令工mysqlbinlog.mysqlbinlog工具的作用是解析mysql的二进制binlog日志内容,把二进制日志解析成可以在M ...
- Linux查看日志三种命令
第一种:查看实时变化的日志(比较吃内存) 最常用的: tail -f filename (默认最后10行,相当于增加参数 -n 10) Ctrl+c 是退出tail命令 其他情况: tail -n ...
- 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
简介 在简单恢复模式下,日志文件的作用仅仅是保证了SQL Server事务的ACID属性.并不承担具体的恢复数据的角色.正如”简单”这个词的字面意思一样,数据的备份和恢复仅仅是依赖于手动备份和恢复.在 ...
随机推荐
- .Net dependent configuration
error info: 解决方案:在.exe.config文件中配置Newtonsoft.Json所用版本 <runtime> <assemblyBinding xmlns=&quo ...
- 网络流(dinic算法)
网络最大流(dinic) 模型 在一张图中,给定一个源点s,给定汇点t,点之间有一些水管,每条水管有一个容量,经过此水管的水流最大不超过容量,问最大能有多少水从s流到t(s有无限多的水). 解法 di ...
- vue--transition-group
1.为什么要使用<transition-group> <transition></transition>是vue封装的过渡组件 <transition nam ...
- git push origin master 上传失败
http://blog.csdn.net/llf369477769/article/details/51917557 按照网上教程用git把项目上传到github,但是在最后一步git push or ...
- cookie 和session 详解
cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于c ...
- zookeeper和kafka的使用
zookeeper使用和原理探究(一) http://www.blogjava.net/BucketLi/archive/2010/12/21/341268.html zookeeper的作用和原理讲 ...
- 获取的输入内容,没有被P标签包裹的文本和元素进行处理
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- web前端常见面试题
转载自:https://www.cnblogs.com/jj-z/p/7999538.html 一.理论知识 1.1.讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 a. 域名解析 b. 发起 ...
- 敏捷开发——User Story
敏捷开发流程: 1.我们首先需要确定一个Product Backlog(按优先顺序排列的一个产品需求列表),这个是由Product Owner 负责的: 2.Scrum Team根据Product B ...
- C++ for循环语句
#include "pch.h" #include<iostream> using namespace std; int main() { int i = 1, sum ...