第二届SWCTF部分WP1

简介: 第二届SWCTF部分WP

1、misc

(1)Misc1

下载附件,压缩包里面有两张jpg图片

解压后习惯性的放进kali里面分析一下,没有隐藏文件

放到Stegsolve里分析,因为是两张一样的图片,combiner也没啥发现

分别对两张图片单独分析也没有发现任何有用的信息

用010editor打开 hint.jpg ,在结尾发现了一串编码

5L2g5LqG6KejcHlj5paH5Lu25ZCX77yf

放入随波逐流发现是base64

解码得到

你了解pyc文件吗?

(pyc文件反编译可以得到py文件)

但是目前附件里并没有发现pyc文件

于是我又将没解压前的原始压缩包放进kali分析

依旧没有得到什么新的东西

再次使用010editor打开另一张图片 secret.jpg

也是在结尾找到一串字符

bw0NCgAAAABFNylkvgAAAOMAAAAAAAAAAAAAAAAAAAAABAAAAEAAAABzQgAAAGQAWgBkAVoBZQJkAoMBRABdDloDZQRlAWUDFwBkAxYAgwFaBWUAZQU3AFoAcQhlBmQEZQAXAGQFFwCDAQEAZAZTACkH2gDpYwAAAOkgAAAA6YAAAAB6BWZsYWd7+gF9TikH2gRmbGFn2gNrZXnaBXJhbmdl2gFp2gNjaHLaA3RtcNoFcHJpbnSpAHINAAAAcg0AAAD6B3Rlc3QucHnaCDxtb2R1bGU+AQAAAHMMAAAABAIEAQwBEAEKARQB


放进随波逐流

解了个base92出来

将这段信息存为.pyc文件,尝试去进行反编译

但是一直报错,无论是用软件还是网站都不行

尝试换了很多个网站都不行

然后去搜索图片和pyc之间的东西,发现了另外两个方向


第一个是Python可以将图片转成.py文件


但是我Python安装本身存在一些问题,看它那个代码也不太明白,就没去试这个方向


第二个是在pyc文件中嵌入信息


Stegosaurus 是一款隐写工具,它允许我们在 Python 字节码文件( pyc 或 pyo )中嵌入任意 Payload。由于编码密度较低,因此我们嵌入 Payload 的过程既不会改变源代码的运行行为,也不会改变源文件的文件大小。 Payload 代码会被分散嵌入到字节码之中,所以类似 strings 这样的代码工具无法查找到实际的 Payload。 Python 的 dis 模块会返回源文件的字节码,然后我们就可以使用 Stegosaurus 来嵌入 Payload


然后我去下了个 stegosaurus,对刚才的pyc文件分析


但是也没有什么发现,提示未知的代码类型

我还对这两张图片取异或后的数据进行过分析,但是看到一片黑

如果全黑代表着两张图片一模一样每一个字节都一样(因为异或运算,00为黑)

但其实还是有一定差别的,通过导出的数据来看

存为pyc文件去反编译但是也是不行的

后面将字符串使用在线网站进行base64解码,出现了乱码

这也是为什么前面在随波逐流中没有显示base64的结果

同样是将解码的结果存为pyc文件进行反编译,依旧是报错或者没结果

后面去找这个报错的原因

Invalid pyc/pyo file - Magic value mismatch!


发现这个是因为每个 .pyc 文件都有一个magic head,PyInstaller 生成 .exe 的时候会把 .pyc 的 magic 部分去掉,在反编译的时候需要补齐。


于是去找了个文件头给它补了一下,但是反编译出来没有任何结果,是一个空文件

后面换了好几个base64解码的网站,终于找到了一个好用的:CyberChef

这个网站可以直接将结果存为文件,这里我们直接存为.pyc文件

再对这个pyc文件反编译

得到Python源码

#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 3.10
flag = ''
key = 99
for i in range(32):
    tmp = chr((key + i) % 128)
    flag += tmp
print('flag{' + flag + '}')

运行代码

直接拿到flag

flag{cdefghijklmnopqrstuvwxyz{|}~}

但是这里最后结果多出了一些东西,删掉即可

最终flag为

flag{cdefghijklmnopqrstuvwxyz{|}~}

(2)Misc2

附件打开是usb流量

在CTF中USB流量分析主要以键盘和鼠标流量为主,前者数据长度为八个字节,后者则为四个字节

wireshark打开我们可以发现它是八个字节,所以是键盘流量

使用kali中的tshark 命令把cap data提取出来

tshark -r usb.pcap -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt //提取并去除空行

但我们发现提取出来的数据并没有带冒号

使用脚本给它加上冒号

f=open('usbdata.txt','r')
fi=open('out.txt','w')
while 1:
    a=f.readline().strip()
    if a:
        if len(a)==16: # 鼠标流量的话len改为8
            out=''
            for i in range(0,len(a),2):
                if i+2 != len(a):
                    out+=a[i]+a[i+1]+":"
                else:
                    out+=a[i]+a[i+1]
            fi.write(out)
            fi.write('\n')
    else:
        break
fi.close()

编好后使用./直接运行,发现权限不够,加权后运行还是报错

我们使用Python3来运行,成功将冒号加上去了

使用脚本还原键盘流量对应的信息

normalKeys = {
    "04":"a", "05":"b", "06":"c", "07":"d", "08":"e",
    "09":"f", "0a":"g", "0b":"h", "0c":"i", "0d":"j",
     "0e":"k", "0f":"l", "10":"m", "11":"n", "12":"o",
      "13":"p", "14":"q", "15":"r", "16":"s", "17":"t",
       "18":"u", "19":"v", "1a":"w", "1b":"x", "1c":"y",
        "1d":"z","1e":"1", "1f":"2", "20":"3", "21":"4",
         "22":"5", "23":"6","24":"7","25":"8","26":"9",
         "27":"0","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t",
         "2c":"<SPACE>","2d":"-","2e":"=","2f":"[","30":"]","31":"\\",
         "32":"<NON>","33":";","34":"'","35":"<GA>","36":",","37":".",
         "38":"/","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>",
         "3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>",
         "44":"<F11>","45":"<F12>"}
shiftKeys = {
    "04":"A", "05":"B", "06":"C", "07":"D", "08":"E",
     "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J",
      "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O",
       "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T",
        "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y",
         "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$",
          "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")",
          "28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>",
          "2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"",
          "34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>",
          "3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>",
          "41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}
output = []
keys = open('out.txt')
for line in keys:
    try:
        if line[0]!='0' or (line[1]!='0' and line[1]!='2') or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0' or line[6:8]=="00":
             continue
        if line[6:8] in normalKeys.keys():
            output += [[normalKeys[line[6:8]]],[shiftKeys[line[6:8]]]][line[1]=='2']
        else:
            output += ['[unknown]']
    except:
        pass
keys.close()
flag=0
print("".join(output))
for i in range(len(output)):
    try:
        a=output.index('<DEL>')
        del output[a]
        del output[a-1]
    except:
        pass
for i in range(len(output)):
    try:
        if output[i]=="<CAP>":
            flag+=1
            output.pop(i)
            if flag==2:
                flag=0
        if flag!=0:
            output[i]=output[i].upper()
    except:
        pass
print ('output :' + "".join(output))
目录
相关文章
|
5月前
日更[ACTF新生赛2020]Oruga wp
日更[ACTF新生赛2020]Oruga wp
42 0
|
7月前
|
SQL 安全 数据库
技术心得:实验室每日一题WP
技术心得:实验室每日一题WP
34 0
|
8月前
|
网络安全
2024年---蓝桥杯网络安全赛道部分WP
2024年---蓝桥杯网络安全赛道部分WP
|
SQL 安全 PHP
第二届SWCTF部分WP3
第二届SWCTF部分WP
91 0
|
算法 数据安全/隐私保护 索引
第二届SWCTF部分WP2
第二届SWCTF部分WP
100 0
|
JSON 安全 Android开发
渔人杯部分wp
渔人杯部分wp
125 0
|
XML 数据格式
bugku-眼见非实-wp
bugku-眼见非实-wp
|
PHP 开发者
【第二届PHP全球开发者大会】惠新宸(鸟哥):PHP7性能之源
5月14-15日的第二届2016PHP全球开发者大会在北京国际会议中心举行。国内最有影响力的PHP技术专家、新浪微博任平台及数据部总架构师兼首席PHP顾问惠新宸(“鸟哥”)做了题为《PHP7性能之源》的演讲,通过与PHP5中的检查机制、JIT编译器、WP等相对比,详解PHP7的性能提升的奥秘。
4876 0
|
Web App开发 移动开发 开发者
微软CEO鲍尔默力推HTML5:称其为平台的粘合剂
据国外媒体报道,微软CEO史蒂夫·鲍尔默(Steve Ballmer)上周参加微软“专业开发者大会”(Professional Developers Conference)时,将Windows Azure、HTML 5和Windows Phone 7作为开发者平台推广。
873 0
|
测试技术 Shell PHP
MOCTF新春欢乐赛部分WP
已经过去有段时间了,比赛在年前,现在才有时间整理一下当时做出的一些题目。 当作是一个复习梳理了 比赛地址:http://happy.moctf.com/ 官方所有WP:https://github.
1252 0