写在前面
比赛前:来了来了它来了,RWCTF它来了
比赛后:看我看我,我宣布个事,我是个()
所以为什么这场比赛一道逆向都没?什么?体验赛也没有?算了,拣点简单的题复现一下,也算是拓宽眼界了
(所以大概还是不定期更新)
体验赛-pwn-vision
可谓是这次RealWorld在做法上最简单的一道题,不得不尝。
一上来先把脚本都给你了让你去拆解sha256——
跟着到github上扒下源码直接用,它会让你连上另一个端口——
那连都连上去了,试几个常用指令呗——
啊?我cat flag都还没打呢?可这道题明摆着又是pwn标签,看来问题只能出在程序里头了,我们解包出来看看——
开头就是一个简单的字符过滤。问题出在接下来的一段——
我们输入的其它指令过不了这个宽松的判定,是它容许的指令集里面并没有相应的子串,但sh在前面可是确实有个showKey
包含的。而也正因如此,在sh
前面加空格反而会弄巧成拙导致判定出空指令。
而下面有一段popen可以触发sh,所以当你输入sh flag
的时候,它会直接识别到sh然后把flag拱手让人。
当然,还有一种理论可行的办法,就是用卡随机数种子的办法强行把openthedoor
指令过了,但是这玩意,nep那边有两位老哥扫了半天还是Fail to get shell,所以基本可以pass了。