2020年DASCTF四月线上赛

第一次参加比赛,做出题很开心了~

Misc

Bluetooth

下载下来是一个流量包,题目也没有提示,就先用binwalk看能不能提取出什么。直接 binwalk -e,什么也没有。

但是我们往下看一下,是有个压缩包。那就手动提取吧dd if=3.pcapng bs=1 skip=24437 of=3.zip

image-20200425202118617

这次,文件所在目录出现了一个压缩包,尝试打开但是有密码,但是我们可以看到它提示信息:

image-20200425202435440

说密码蓝牙的pin,我也是刚刚接触这个wireshare这个软件,百度了一下,就是我们连接蓝牙时的那个数字。但是我是不知道怎么找这个东西,就百度怎么用wireshark抓蓝牙的包,但没有的得到有用消息,有的还要什么蓝牙驱动。就自己去搜索bluetooth,找了一圈也没有得到那个pin。我就又跑去打暴力破解的打算,但又没有7z压缩包暴力破解密码的工具,又去各大论坛找,找到了但没用😂。暂时放下了这个题,去做reverse, reverse的2个题做的还比较顺利。回来继续看这个题,这次干脆直接搜 pin 试试,出现 PIN请求,PIN请求回应,PIN请求回应完成。

image-20200425203534918

那么这PIN请求回应的可能性就最大了,点进去:可以看到 PIN Code : 141854

image-20200425203900340

最后输入压缩包得到flag。

image-20200425204118569

Reverse

re2

题目下载后,用ida打开,找到主函数,逻辑上很清晰,说是将flag与我们输入的数字混合在了一起。程序就做了将我们输入的数字与已经编码了的一些数据进行异或运算然后输出的操作。

image-20200426191831676

开始想的是会不会直接就是已经编码的数据,看了看ASCII,不可能是。

那有可能就是将我们输入的数据与编码的数据进行或运算后输出的是flag。那么按照flag的格式,根据题目说 最后的flag输入的是 flag{}/DACTF{}中的数据,那么这里的flag也就是这2种格式了。

这样就好办了,他们末尾都是 } 我们把编码数据的最后一位 61,找到一个数字与它异或运算位的值为 } 的ASCII 125,就行了。 得到64,最后把编码的所有数据与64进行一个异或运算就得到flag。

但是提取数字时,我们可以直接把代码复制到编译中,但是注意,这不是数组,根据栈的特点,要倒着遍历。

-------------本文结束感谢您的阅读-------------