RWCTF体验赛道 萌新实时体验&赛后看wp跟学练手

  说实话RWCTF实在不是给新手练手来的啊...本萌新当时稍微看了一些各种利用复现的文章,实在是觉得门槛好高。实战尝试做了Vision和Be-an-ActiveMq-Hacker,后者实在是不太会复现利用漏洞,前者做了一半了卡住,后面没做出来也没接着研究(到写这篇文章前),现在接着研究一下Vision这题

题目给出的压缩包包括环境搭建的docker以及启动脚本等,然后给出一个程序main_static和本地拿来试的伪flag.IDA打开main_static

但是nc连接的界面需要先解sha32,而且该界面的密码动态且限时,脚本求解(学姐提供)

 

脚本跑完之后终于进入main_static的程序,虽然程序中没有sys的直接调用,但是程序的输出应该是被重定向到shell了的,因为输入help中给出的被允许的指令ping,whoami等都是可以执行的那么我们精心构造一个payload应该就可以打通,审查代码中的过滤规则

(还有个Not Support4,后面会出现)

(居然(int)"||"按%c格式化输出时是&)

可以看到很多搞小动作的方法都被ban了,然后就一直想其他方法去拿full shell但是没什么头绪看了wp然后重新想了一遍,又试了下才知道问题在哪

首先IDA中的off_4020数组是可以使用的命令的列表,之前在想其他可以利用的地方就没注意到这里

可以看到date也可以使用,wp说有人用date -f /flag可以读取但是我的本地环境没有读到,可能是没配置好

那么对于Not Support4的检查就比较清楚了,其实是用strcmp检查输入s中检查是否有与命令列表off_4020相同的部分,长度为v13,对于v13的值一个是可以利用/x00截断,但是这里犹豫s2已经是截断到了命令的第一个空格的地方,所以可以构造一个巧妙的payload

wp的payload是sh -c "cat ./flag",利用了"showKey"和"sh -c /"cat .//flag/""的前两个字符相同,成功获取flag

总结

收获的话,应该意识到掌握linux的重要性了,后面打西湖的时候也狠狠的吃了大亏,光速学习去咯~

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值