20210913_test_your_nc

20210913_test_your_nc

每日一题的第一周,来一起做一道究极入门的pwn题吧。
首先按照网址链接打开题。

请添加图片描述

题目叫做test your nc,也就是“测试你的nc”。

这看起来像是一个提示–很多ctf题都会把考察的方向作为题目的文件名,以给予做题者一个思路或者学习的方向。但是nc又是什么呢?

我们先把题目文件下载下来,看看具体的东西吧。
在这里插入图片描述
从文件管理中我们可以发现我们下载下来的题目叫做test,并且没有任何后缀。
回忆一下,windows系统里是不是几乎所有你看到可以执行的软件的后缀都是exe?似乎只有看到exe你才会想双击试图运行它,而这个test既没有图标,也没有后缀,根本无法让人感觉这是一个可以执行的程序。
但是要知道,操作系统并不只有windows一个,而每个操作系统上基本都有各自的可执行程序。在windows上,我们日常所碰见的可执行程序大多都是exe,但是换一个系统的话,就不一定是exe,而是它自己规定的文件格式了。
那猜想一下,linux上的可执行程序的后缀会是怎样的?.lin?.lx?
很遗憾都不对,linux上的程序并没有拓展名,也就是并没有后缀。如果你在linux上看到一个没有任何后缀光秃秃的文件,那么它就很有可能是一个可执行程序。
回到我们刚刚碰见的没有任何后缀的文件,这就一是一个linux系统上的可执行程序。
至于为什么linux的可执行程序没有后缀,大家可以自行查找资料。
我们拿到这个test,可以直接拖进ida进行反编译,看看程序的伪代码,也可以先在ubuntu上了解一下程序执行出来是什么样的。
因为这道题比较简单,这里我们直接拖进ida。
值得一提的是,你需要选择你程序的版本来打开对应的ida版本。比如你的程序是32位,你就要打开ida32,64就是ida64.
那么如何判断程序的位数呢?
其实不嫌麻烦的话可以随机row一个ida版本直接拖进去,如果版本不对ida是无法对题目进行反编译的,这是会提示报错,然后你就退出再在另外一个ida中打开就行。
也可以在ubuntu中checksec或者file一下查看文件的属性。位数会被显示出来。
拖进去以后一路ok就行,一般来说不会有什么离谱的报错,除非你的ida安装有问题。请添加图片描述

加载完成后直接f5反编译,结果是这样一串代码。
萌萌新可能不太清楚这个代码是什么意思。用比较通俗易懂的方式来说,一般我们做pwn题,直接的目的都是获取flag。
而获取方式就是pwn掉,或者是黑掉出题方的服务器(或者说远程的一台电脑)。当你能自由操控对方的服务器了,你也能很轻松地在这台电脑的文件中找到flag。
所以做pwn题的关键就是找到黑掉对方电脑的方法。
在实战中随随便便就黑掉对方的服务器几乎是天方夜谭,但是在ctf pwn中,出题人会给你一些设计好的漏洞,只要你能利用这些漏洞,就能非常轻松地随意查看服务器上文件的内容。
而这道题目文件本身,就是一个非常坦诚的后门函数。
之前说到,如果要获得对方服务器的控制权需要利用到出题人构造好的漏洞点。而这些这些漏洞点的利用几乎最终都是为了构造这个后门函数。这个函数的作用简单来讲就是提升用户权限。原本我们连接上服务器之后,只能操作题目文件,并不能通过ls等命令查看操作其他文件。因为我们的权限被限制了,但是如果在程序中执行system(‘/bin/sh’这串代码,我们的权限就会得到提升,我们就能够查看电脑上的其他文件,获取flag。可以把它理解为一把开启flag宝箱的钥匙。
做pwn题的时候,这个函数大概率是不会被直接给出的,我们需要利用漏洞来将这个函数凭空构造出来,很是费力。但是这个题目非常亲民地直接将函数给出来了。
所以是不是我们只需要连接到远程的电脑上,就能获取flag了?
所以这道题的真实考点,是nc这个东西。
我们通过搜索引擎可以知道nc是个linux上的指令
那些复杂的功能我们不管。只要知道在终端输入nc 加上你想要链接的ip,就能够与ip所在的远程服务器进行交互。
总结一下。这道题直接给出了后门函数。所以要获取flag就直接链接到服务器就好了。
连接服务器的方式就是输入nc加ip地址。ip地址题目已经给出了。
所以我们甚至不用安装pwntools(一个做pwn题非常好用的集成工具),直接在终端输入nc nc node4.buuoj.cn 29499,我们就自动获得了高级权限,直接cat flag,就能获得flag。
这里使用mac的终端演示的。请添加图片描述

这样我们就获得了这道题的flag,
将它复制到题目的flag框中,就好了。

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值