这篇文章接着上篇pwnable刷题writeup之Toddler’s Bottle(一)

9.mistake

有问题的代码为:

<的优先级大于=,所以在打开文件后现执行open(“/tmp/xx.txt”,O_RDONLY,0400) < 0 ,正常open时返回的值大于0, 正数<0 比较之后为0,然后再赋值给fd,fd=0时对应着标准输入,所以后面会从标准输入中读取password,而不是从文件中读取。

10.shellshock

这题考察shellshock漏洞,ssh登入发现目录下有一个有漏洞的bash,shellshock被设置了setuid位:

先来看看bash shellshock漏洞(参考:http://drops.wooyun.org/papers/3268http://www.tuicool.com/articles/fEJbQn):

如果环境变量的值以字符“() {”开头,那么这个变量就会被当作是一个导入函数的定义(Export),这种定义只有在shell启动的时候才生效。BASH处理以“(){”开头的“函数环境变量”的时候,并没有以函数结尾“}”为结束,而是一直执行其后的shell命令。目录下有一个bash,输入:

输出vulnerable  hello,表示这个目录下的bash存在bash shellshock漏洞。构造特定的环境变量,让有漏洞的bash执行输出flag的命令:

输出flag:only if I knew CVE-2014-6271 ten years ago..!!

11.coin1

题目如下:

coin

题目意思是找出N个硬币中的假硬币,C是每次可以询问的次数(不能多也不能少),这题用二分法查找即可。

开始时用zio写的,结果网络延迟太大,只能换成在他服务器上跑(写入/tmp目录,提示为(if your network response time is too slow, try nc 0 9007 inside pwnable.kr server)),但是服务器上又没有zio库,没办法只能写了个普通socket版的:

跑出flag为:b1NaRy_S34rch1nG_1s_3asy_p3asy

12.blackjack

没看明白blackjack的规则。。。过段时间再研究研究

13.lotto

问题处在以下循环:

这个循环对每个输入的字符都比较了6次,而最后只需要有6次匹配则能出flag。只需要输入相同字符,则能大大增加匹配成功的概率(每次成功概率为6/45,多试几次就能得到flag):

2015-09-06 14:44:49 的屏幕截图

14.cmd1

从题目可以看出,输入的命令不能含有flag,sh,tmp。在/tmp目录下新建一个文件夹,在这个文件夹中添加一个符号链接:

在该目录下编译运行如下程序:

得到flag :mommy now I get what PATH environment is for 🙂

15.cmd2

这题过滤了/,没法像上一题那样直接用符号链接,暂时还没搞定。。求大牛指导!

 

 

观看更多有关 的文章?

*

+
跳转到评论