从前有只路人甲

导航

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;'的方法,下面是运行结果

      

     运行环境变量和命令行下的命令是;是分割符,这个是要转过来的地方

posted on 2017-06-06 00:31  从前有只路人甲  阅读(143)  评论(0编辑  收藏  举报