目录
1.签到题
微信扫码即可
2.这是一张单纯的图片
用winhex打开,发现一串Unicode
转ascii
3.隐写
下载下来之后是这样一张图
bugku...是不是感觉隐藏的东西了,改一下高度,查案像素值
用程序员计算器算一下 16进制
这里我把高度改成了和宽度一样,保存,再次打开
4.telnet
telnet远程控制,一个流量包
看见telnet,查看一下tcp流,emmm
算了,说一下,我会的吧,contains 查找字符串,导出文件等等。。
5.眼见非实(ISCCCTF)
下载下来之后是个不带后缀的zip包
改为zip,解压后得到一个docx和一个txt文件
打开txt
d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e
看到一堆二进制,八进制,十进制,十六进制,转一下字符串
#!/usr/bin/python
# -*- coding:utf8 -
import binascii
text = "d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e"
solution = ''
text2 = text.split(' ')
for x in text2:
print(x)
if x[0] == 'b': #binary
solution += chr(int(x[1:],2))
elif x[0] == 'x': # hexadecimal
solution += chr(int(x[1:],16)) #python3中没有decode方法
# elif x[0] == 'x':
# solution += x[1:].decode("hex")
elif x[0] == 'd':
solution += chr(int(x[1:]))
elif x[0] == 'o':
solution += chr(int(x[1:],8))
print(solution)
捕捉到一个flag
6.啊哒
一张图片,看属性
十六进制转换
p = "73646E6973635F32303138"
s = []
for i in range(0, len(p), 2):
b = p[i:i+2]
s +=chr(int(b, 16))
print(''.join(s))
应该是密码什么的
binwalk一下果然发现其他东西
foremost分离出一个压缩包
输入sdnisc_2018解压
得到 flag
7.又一张图片,还单纯吗
另存为,查看属性,啥都没有,binwalk发现东西,foremost分离一下
发现flag
8.猜
这个还用猜,刘亦菲
百度了一下别人的,百度识图
9.宽带信息泄露
打开之后是乱码,被加密了,到网上寻找该配置程序的解密工具,找到一款名为RouterPassView的工具,使用该工具打开.bin文件,如下所示:
xml文件,题目说的是用户名,搜一下username
10.隐写2
右键另存为,binwalk,foremost, 发现压缩包,有提示
爆破白
解压
右键 notepad++打开
得到 f1@g{eTB1IEFyZSBhIGhAY2tlciE=} ,base64解码,@变为a
13.come_game
靠玩,能得到flag的请私聊我一下,泪
发现有存档,
发现一个2,修改为3,
发现新关卡,依次修改为4,5 ,得到flag
14.linux
解压得到flag
strings flag
15.隐写3
感觉没显示完整,查看一下属性
计算一下16进制
将01修改为02
得到flag
16. 做个游戏(08067CTF)
使用java反编译工具反编译一下
找到flag,base64解码一下
17.想蹭网先解开密码
cap流量包,用aircrack-ng爆破一下
需要生成一个手机号的密码集合
#!/usr/bin/python
# -*- coding:utf8 -
s = '1391040'
s1 = ''
dic = open("pass.txt","a")
for a in range(9999):
s1 = s+str(a).zfill(4)+'\n'
dic.write(s1)
命令
aricrack -a 2-w pass.txt wifi.cap
18.Linux2
解压得到brave
binwalk,foremost
what???,为啥咋交都不对
然后,这到底啥意思
19.账号被盗了
bp 抓包改包,false改成true
发现一个网址
http://120.24.86.145:9001/123.exe
下载下来后,发现
填好账号,密码
wireshark抓下包
发现两个base64
解码发现是163邮箱账号和密码
bkctftest@163.com
a123456
登录即可
20.细心的大象
解压 ,查看属性
base64解码 MSDS456ASD123zz
binwalk foremost
出现了压缩包,输入密码
眼熟。。改高度
flag都没改,就是那张图
21.爆照(08067CTF)
一张图片
foremost 分离出8个文件和一个gif
用TXT打开,发现是jpg文件
第二张图发现二维码,第三张图备注发现base64,第四张图发现隐藏文件,根据题目提示,得出flag
真的难。。。
22.猫片(安恒)
一波操作,没用,属性,binwalk,steghide,。。。都没用
上网搜了一波,发现是StegSolve解决的
发现有东西,进入Extract Preview
发现是png格式的,保存为二进制。
png 图片开头是89 50 4E 47,删除多余的东西,保存
半张 二维码,改高度,老操作
扫描 二维码,得到
下载下来是个压缩包
解压
ntfs隐写,前几天刚看这个操作,然而怎么都不好使,看别人题解得知必须薇能让人解码才可以读出字节流,
果然好使
.pyc python逆向
uncompyle2 反编译一下
# 2018.11.19 20:12:05 CST
#Embedded file name: flag.py
import base64
def encode():
flag = '*************'
ciphertext = []
for i in range(len(flag)):
s = chr(i ^ ord(flag[i]))
if i % 2 == 0:
s = ord(s) + 10
else:
s = ord(s) - 10
ciphertext.append(str(s))
return ciphertext[::-1]
ciphertext = ['96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']
+++ okay decompyling /root/Desktop/C!_Users_ppp_Desktop_鏉傞」_flag_flag.txt!flag.pyc
# decompiled 1 files: 1 okay, 0 failed, 0 verify failed
# 2018.11.19 20:12:05 CST
写脚本解密
import base64
def decode():
flag = ''
ciphertext = ['96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']
a = []
a = ciphertext
a.reverse() #数组逆序
len1 = len(a)
for i in range(len1):
if i % 2 == 0:
s = int(a[i]) - 10
else:
s = int(a[i]) + 10
s=chr(i^s)
flag += s
return flag
if __name__ == '__main__':
flag = decode()
print flag[::-1] #字符串逆序
print flag
23.多彩
24.旋转跳跃
25.普通的二维码
打开一张二维码
binwalk啥也没发现,strings发现一串字符, 感觉像是8进制,因为最大是7,八进制转十进制,
12 49 44 12 9 39 15 25 8 12 9 54 12 41 31 15 8 48 10 41 31 10 1 57 11 57 51 12 25 50 13 9 48 14 33 31 9 57 52 12 25 31 10 33 47 11 57 20 12 41 46 11 57 1 14 25 35 13 9 41 4 9 61
emmm,不可能出来字母,试一下3位转一个
102 108 97 103 123 72 97 118 101 95 121 48 85 95 80 121 95 115 99 114 105 112 116 95 79 116 99 95 84 111 95 84 101 110 95 65 115 99 105 105 33 125
有希望,转字母
f l a g { H a v e _ y 0 U _ P y _ s c r i p t _ O t c _ T o _ T e n _ A s c i i ! }
附上脚本
#!/usr/bin/python
# -*- coding:utf8 -
f = open("1.txt",'r')
s =''
a = f.readline()
len1 = len(a)
for i in range(0,len1,3): #步长为3
s = int(a[i:i+3],8) #切片长度为3
print(chr(s)),
#!/usr/bin/python
# -*- coding:utf8 -
f = open("1.txt",'r')
s =''
# a = f.read() #read()只能读一次,在read就读不出了
# len1 = len(a)
# for i in range(0,len1,3):
# s = int(a[i:i+3],8) #使用切片,3位8进制转十进制
# print(chr(s)),
len2 = 126//3
for i in range(len2):
ss = eval('0'+f.read(3)) #3位八进制转十进制
s +=chr(int(ss))
print s
26.乌云邀请码
属性 binwalk strings毫无发现,最后在stegSlove发现东西,flag,
27. 神秘的文件
将题目解压出来,题目压缩包里有个logo.png和一个加密压缩包,很明显的明文破解,使用题目压缩包作为key和writeup压缩包进行明文破解(或者使用2345好压的标准压缩算法压缩logo.png),得到密码:q1w2e3r4
解压后得到doc文件,当成压缩包解密,能找到flag.txt中有一串base64编码的字符串,解码即可。
官方的,反正我是没爆破出来,谁做出来了,告诉我声。
28.图穷匕现
binwalk 发现有其他东西
foremost 分离出来一张图片,和原图一样,但是只有21.2k,原图好几百k,emm,知道了吧;jpg文件头,FF D8 文件尾FF D9
用16进制编辑器打开,删除jpg文件部分,后缀名改为txt
16进制,转ascii码,notepad++就可以完成
接下来 画图就可以了,参考前面
29.convert
白哥的鸽子
jpg图片,查看图片属性,分一下层,binwalk,啥也没有。
strings一下
栅栏解码
神秘的文件
解压后得到一个flag压缩包和logo图片
压缩包含有密码,并且里面也有一个相同的logo图片
知道了吧,zip明文爆破 (WinRAR加压才可以)
解压,打开文档
改后缀为zip,解压,在docProps里发现flag.txt
发现是base64,解密,我用的是notepad++,可以直接解密(插件里面的MIME Tools)
论剑
不知道这道题到底要干什么,试了好多种方法,不好使。
strings 发现一串二进制,转成ASCII为mynameiskey!!!hhh,没啥用
binwalk,foremost,分离得到两张图片,各种尝试,最后发现修改高度,发现东西
打马赛克了,emmmm ,想到了mynameiskey!!!hhh,md5加密
不是,看来这个有可能是密码之类的东西了,可是也没有压缩包啊,继续分析原图片
发现很诡异 ,百度了一波,发现7z文件头:37 7A BC AF 27 1C,修改一下,然后改后缀为7z,改高度
解压的时候发现密码
尝试用 mynameiskey!!!hhh,成功了
对比一下
得到flag 666C61677B6D795F6E616D655F482121487D
最后base16解密
好多数值
大数因数分解网站推荐:http://factordb.com/index.php
#!/usr/bin/python
# -*- coding:utf8 -
from PIL import Image
x = 503 #x坐标 通过对txt里的行数进行整数分解
y = 122 #y坐标 x*y=行数
im = Image.new("RGB", (x, y))
file = open('1.txt')
for i in range(0, x):
for j in range(0, y):
line = file.readline().replace('(','').replace(')','') #获取一行rgb值,并且把()都替换为空
rgb = line.split(",") #逗号分割
im.putpixel((i, j), (int(rgb[0]), int(rgb[1]), int(rgb[2]))) #(i,j)为坐标,后面的是像素点
im.save("f.png")