这里记录一下安恒杯DASCTF——四月春季战misc的部分wp

Re

入门reverse

这道题下载完以后打开ida32进行分析:

image-20200425155822034

可以看到v6的起始是A0hv5起始是30h,那么两个相减为70h,转为10进制刚好为112

所以第12行的v6[i-112]就可以看成是v6+i-112,也就是说v6第一个对应着v5的第一个,第i+1个对应着v5的第i+1

所以写了个脚本:

s = 'akhb~chdaZrdaZudqduvdZvvv|'
for i in s:
    print(chr((ord(i)-1) ^ 6),end='')

得到flag

Misc

blueshark

这是一道蓝牙流量分析题,之前没有见过,挺新颖的,但是题目不是特别难

链接:https://pan.baidu.com/s/1j_eZDSPqWoJc0j9vvzPhnA
提取码:3apr

首先我们对流量包binwalk分析一下:

image-20200425151910073

会发现流量里面曾经传输过一个7z压缩包,那么我们去流量包里面给他找到这个压缩包(直接ctrl+F 搜索7z):

image-20200425152906020

然后提取出来:

image-20200425152936523

然后会发现一个名为password_is_Bluetooth_PIN的文件

那么继续去流量包里面搜索PIN,找到PIN181454

得到flag

Keyboard

这是一道内存取证题

链接:https://pan.baidu.com/s/12hiim_4elJfXkgGxxR3XMQ
提取码:gbwo

解压以后发现是一个.raw文件和一个名为secret的文件,secret那个文件是磁盘加密的文件

我们先对.raw文件进行取证分析:

(关于取证可以看看Ga1@xy师傅的这篇博客:http://www.ga1axy.top/index.php/archives/16/)

image-20200425170702156

主要命令是用:

volatility -f Keyboard.raw imageinfo

volatility -f Keyboard.raw --profile=Win7SP1x64 pslist

volatility -f Keyboard.raw --profile=Win7SP1x64 filescan | grep -E 'png|jpg|gif|zip|rar|7z|pdf|txt|doc'

volatility -f Keyboard.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003d700880 --dump-dir=./

然后查看会发现有个keyboard-log/t.txt,那么我们把他导出:

image-20200425170721784

那么他有提示说ctfwikiCRYPTO ABC,可知是QWE加密:https://zhuanlan.zhihu.com/p/33858548

那么提供一个脚本:

def search(x):
    return{'q':'a','w':'b','e':'c','r':'d','t':'e','y':'f','u':'g','i':'h','o':'i','p':'j','a':'k',
    's':'l','d':'m','f':'n','g':'o','h':'p','j':'q','k':'r',
    'l':'s','z':'t','x':'u','c':'v','v':'w','b':'x','n':'y','m':'z',
    }.get(x,x)
def main():
    print("QWE键盘解密程序")
    print("请输入待解密的字符串:")
    while True:
        try:
            miwen=input()
            miwen=miwen.lower()
            print("结果是:")
            for i in miwen:
                print(search(i),end='')
            print("\n")
        except:
            break

if __name__=="__main__":
    main()

解得veracryptpasswordiskeyboarddraobyek

image-20200425170916329

那么用veracrypt给他加载,密码根据前面说的uppercase可以知道是大写KEYBOARDDRAOBYEK

那么进去之后发现是个vhd文件

这里有两种解法:

  1. 非预期,直接string一下就可以出来:

image-20200425175003332

  1. 预期解,首先挂载vhd文件,然后发现这个文件是隐藏文件,给他取消隐藏,然后用dir /r命令

image-20200425175154046

发现有NTFS隐写,那么获得flag:

image-20200425175256642

(签到题)6G还远吗?

这道题文件不用下完,下一部分然后记事本打开就可以看到了:

image-20200425154355987