pwnable.kr-cmd2

题目描述: Daddy bought me a system command shell. but he put some filters to prevent me from playing with it without his permission… but I wanna play anytime I want! ssh [email protected] -p2222 (pw:flag of cmd1) 这题ssh的登陆密码是cmd1的flag,登陆后查看cmd2.c的源代码: 我们看到相比cmd1还多过滤了“/”,所以这里我们需要绕过这个限制,这里有多种方法可以绕过,经过测试我们发现通过cmd2中的system可以直接执行echo,但是其他的命令都需要绝对路径才行,也就是例如whoami需要”/bin/whoami”,这样会出现”/“。这里利用echo进行绕过: 把所有的字符经过8进制编码: 然后得到编码后的字符串,最后构造payload: [email protected]:~$ ./cmd2 ‘$(echo “\057\0142\0151\0156\057\0143\0141\0164\040\0146\0154\0141\0147”)’ $(echo “\057\0142\0151\0156\057\0143\0141\0164\040\0146\0154\0141\0147”) FuN_w1th_5h3ll_v4riabl3s_haha 可以成功得到flag: FuN_w1th_5h3ll_v4riabl3s_haha

pwnable.kr-blackjack

题目描述: Hey! check out this C implementation of blackjack game! I found it online * http://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html I like to give my flags to millionares. how much money you got? Running at : nc pwnable.kr 9009 看了下源码,就是个blackjack(21点)游戏,本还以为是需要自己写个机器人,过关的要求的是millionaire(100万),结果黑盒就过了,过程很简单,在投注的时候输了一个很大的数,第一次没有通过,要求重新输入,然后再输一次,并赢了这局就可以了。 看下源码,很容易发现有问题的地方: 这里if应该改成while,如果是if的话,这里只做了一次验证,第二次输入的bet并没有验证: 这样成功获得了flag: YaY_I_AM_A_MILLIONARE_LOL Cash: $727380468 ——- |S | | 9 | | S| ——- Your Total is 9 […]