XCTF---隐写

can_has_stdio?

打开题目进行观察

clipboard.png

 

由八种字符构成,很明显是brainfuck,解密网站http://ctf.ssleye.com/brain.html

clipboard.png

 

clipboard.png

pdf

clipboard.png

 

说图下面什么都没有,逆向思维图下有东西,转换为word即可flag{security_through_obscurity}

 

clipboard.png

give_you_flag

clipboard.png

直接使用stegsolve逐帧分析发现如下图片

frame50.bmp

二维码原理

 

https://blog.csdn.net/ajianyingxiaoqinghan/article/details/78837864

然后发现图片无法识别需要不全三个识别位ps费老鼻子劲

clipboard.png

flag{e7d478cf6b915f50ab1277f78502a2c5}

坚持60s

clipboard.png

打开后是一个游戏,60S对于我来说太难了,狗头

clipboard.png

利用jd-gui(反汇编java程序)

clipboard.png

找到判断语句找到flag,然后将flag中的内容base64解密即可

clipboard.png

 

gif

clipboard.png

打开后是一堆黑白的图片,就把黑色看做1白色看做0,利用python脚本

white = open("./0.jpg","rb").read()

black = open(“./1.jpg”,“rb”).read()

flag_dic = “”

for i in range(104):

with open("./%d.jpg"%i,"rb") as f:

    if f.read() == white:

        flag_dic += "0"

    else:

        flag_dic += "1"

print(flag_dic)

解码后得到

clipboard.png

flag{FuN_giF}

 

掀桌子

clipboard.png

正确思路:

1、报文内容为0-9,a-f,考虑十六进制。把十六进制两两一组转换为十进制(如c8、e9…)

2、接着将十进制数减128(因为ASCII码值为0-127),让其落到ASCII码表上,然后计算出对应ASCII码值的字符,获取flag.

a = ‘c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2’b = [int(‘0x’+a[x:x+2],16) for x in range(0,len(a),2)]print(’'.join([chr(x%128) for x in b]))

 

clipboard.png

 

如来十三掌

clipboard.png

看到一堆佛学的话,是与佛论禅的加密。打开加解密网站。

clipboard.png

 

再用rot-13解密后发现还有base64 加密,解密即得到flag

clipboard.png

 

clipboard.png

 

 

stegano

clipboard.png

 

打开图片后发现是一堆英语,根据题目提示,flag存在于图片中,所以尝试将PDF转化为TXT格式打开,经过尝试后发现将PDF用浏览器打开后复制到TXT文档里可以看到由AB构成的字符串,第一时间想到的是培根密码

clipboard.png

但是不符合AB字符的分组方式,猜测是摩斯密码A->- B->. && A->- B->.

编写python脚本(虚假的操作)或者在word中进行替换(真正的操作)

string = "BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB"
string = string.replace('A','.')
string = string.replace('B','-')
print(string)

摩斯密码解密网站

 

http://moersima.00cha.net/

base64stego

一个ZIP文件由三个部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志。

伪加密原理:zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。

clipboard.png

 

打开就不再显示密码

打开文件后发现是base64加密的一堆字符串,但觉得不太对,从网上找的脚本跑的,大概意思就是靠结尾的几个字符存储信息

解密脚本

0Z$KCI@4QJQO.png

 

def get_base64_diff_value(s1, s2):
base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
res = 0
for i in xrange(len(s1)):
if s1[i] != s2[i]:
return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
return res
def solve_stego():
with open('stego.txt', 'rb') as f:
file_lines = f.readlines()
bin_str = ''
for line in file_lines:
steg_line = line.replace('\n', '')
norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '')
diff = get_base64_diff_value(steg_line, norm_line)
pads_num = steg_line.count('=')
if diff:
bin_str += bin(diff)[2:].zfill(pads_num * 2)
else:
bin_str += '0' * pads_num * 2
res_str = ''
for i in xrange(0, len(bin_str), 8):
res_str += chr(int(bin_str[i:i+8], 2))
print res_str
solve_stego()

ext3

 

clipboard.png

 

6FY551_UM3D)8%FG~8JE~35.png

base64 解密即可

  • 功夫再高也怕菜刀
clipboard.png

 

首先打开是一个流量包,然后搜索flag字段

clipboard.png

从FFD8到FFD9将字段复制出来,以16进制阿斯克码的形式复制到whinx创建的文件中,打开就可以看到解压密码

1.jpg

解压即可得到flag。

个人博客空の城.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值