HITCON 2017 babyfirst-revenge(命令执行绕过二)

昨天不知道怎么了忘记发出去了,和今天的合起来一起发23333333

今天国赛,体验了一把被二进制大手子带飞的感觉。贼爽。

web1太简单,web2太难,web+pwn我就没做出来过。

然后国赛也成为二进制的舞台了(就好像什么比赛不是二进制的天下一样。

所以我这只狗又来学web了。接上昨天的,我想本地搭一个,但是想了好久,到底怎么弄,我想看看实现好的环境。

搜一波发现有人用docker搭过了。但是我是win10企业版,原来的docker tool出问题了,怎么也弄不好。只有在ubantu里面再装一个了。

ubantu安装docker教程:https://blog.csdn.net/rickey17/article/details/72809384

然后学一波docker,首先你需要一个Dockerfile,可以自己写也可以用别人的。

搭建
  • 进入Dockerfile所在的目录
  • 运行命令 docker build -t '自定义镜像名称' . (请注意最后的点不要少)
  • 运行命令 docker images 查看是否已经成功构建景象
  • 运行命令 docker run -id --name '自定义容器名称' -m '要分配给此容器的内存上限' --network='要分配给此容器的网络' -p '容器的外部端口':80 '自定义镜像名称' /run.sh
维护

进入容器 运行指令 docker exec -it '容器名称' /bin/bash

安装docker的过程比较漫长,期间学一波linux。

因为这个题目限制了每次输入命令的长度,所以需要linux里面的小技巧:利用\来实现突破一次输入命令的长度。

因为\可以实现终端换行。

可以看到:我第一次输入的是  l\   按下回车之后出现>然后我们再输入s 按下回车会执行ls命令。

还有一点使用两个字符就能创建一个文件:>z

就在目录下创建了z文件。

那么思路就清晰了,不断的创建文件并且用\结尾,然后拼接,最后再执行,就能getshell了。

mmp题目环境终于搭好了,又让我学了一波docker的基本操作,进服务器看了一下,大概是有一个sandbox的目录,然后flag在服务器里面,需要自己找。主要利用命令绕过限制getshell就行。

md又这么晚了,今天WEB狗又是没有活路的一天。国赛体验极差。

希望明天红帽杯能好受一点。

早日做出这题。开始下一题的修炼。加油!

猜你喜欢

转载自blog.csdn.net/like98k/article/details/80146761