码迷,mamicode.com
首页 > 其他好文 > 详细

Exploit-Exercises nebule 旅行日志(二)

时间:2017-06-05 10:25:06      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:wiki   href   变量   echo   目标   查找   cut   帐号   为什么   

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

标签:wiki   href   变量   echo   目标   查找   cut   帐号   为什么   

原文地址:http://www.cnblogs.com/futianer/p/6943108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!