CTF_MISC(习题)

一、xctf新手练习:base64stego

  1. 下载zip题目,解压发现有密码,考虑zip伪加密,得到解压文档
  2. 打开文档,进行base64解密,发现是关于base64解释
    在这里插入图片描述
  3. 从base64原理出发解析
    base64包含的字母是A-Za-z0-9+/(26+26+10+2),64个字符用二进制表示,需要6位。这样3个字符base64加密后就会变成4位,如图在这里插入图片描述
    如果位数不是6的倍数,需要用“=”补齐,如图
    在这里插入图片描述
    观察上图,倒数第二个字符c的前4位与加密前字符相关,后两位与加密前字符无关,这里就可以藏信息。经过推导,“=”可以藏两位信息,“==”可以藏4位信息,因此文档内每一行中隐藏的信息解出即可,将解出的信息进行拼接,每8位得到一个字符,得到flag。
# base64stego
import base64
base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
f = open("stego.txt")
data = f.readlines()
res=""
binstr = ""
for line in data:
    line = line.strip('\n')
    # print line[-1]
    if line[-2:] == "==":
        temp = bin(base64.find(line[-3])&15)[2:]
        binstr=binstr+"0"*(4-len(temp))+temp
    elif line.find("=")>0:
        temp = bin(base64.find(line[-2]) & 3)[2:]
        binstr = binstr + "0" * (2 - len(temp)) + temp ##注意这里有两位存有信息
# print binstr
for i in range(0,len(binstr),8):
    res=res+chr(int((binstr[i:i+8]),2))
print res

二、xctf新手练习:菜狗决定用菜刀和菜鸡决一死战

  1. 下载下来文件发现是pcapng文件,用wireshark分析一下
  2. 搜索flag发现有flag.txt和zip文件,foremost分离得到有个zip文件,需要解压密码(网上有人说直接将pcapng文件后缀改为zip)
  3. 解压密码应该在pcapng中,找…
  4. 搜索flag,在第1150包中发现有6666.jpg(注意jpg开始字符为FFD8,结束标志为FFD9),追踪流,将里面的内容复制,打开winhex,粘贴,另存为jpg格式图片,打开得到flag。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、bugku_misc:http://ctf.bugku.com/challenges/detail/id/310.html

  1. zip文件,解压后得到在这里插入图片描述
  2. 放入TThexEdit,发现是jpg格式,于是修改后缀在这里插入图片描述
  3. 在这里插入图片描述
  4. foremost后得到zip,需要密码
    在这里插入图片描述
  5. 密码从哪里找呢,在jpg图片,查看详情里面,与佛论禅解谜,在bugku里面找工具解
    在这里插入图片描述
  6. 解压密码如图
    在这里插入图片描述
  7. 得到zip文件,需要密码解压,passwd.txt有提示
    在这里插入图片描述
  8. 按照歌词每一行每一列,依次得到密码三匆爱温蒙惚心信承失记愈的逢过濡善着记回寞神梦
  9. 解压后得到图片,仿佛010中,发现最后有base64密码,解密后得到flag

在这里插入图片描述
bugku{May_y0u_Be_Happy}
四、bugku_blind_injection2:http://ctf.bugku.com/challenges/detail/id/212.html

  1. 下载附件,pcap文件,题目提示盲注
    在这里插入图片描述
  2. 导出http对象
    在这里插入图片描述
    在这里插入图片描述
  3. 前面一定为盲注基本操作,看后面信息,有等号的是注入成功的,将他们选出来
    在这里插入图片描述
    在这里插入图片描述
  4. asiic码转字符串,得到flag,flag{8af8e03c6892476f84d1e347187b2449}
str=[102,108,97,103,95,56,97,102,56,101,48,51,99,54,56,57,50,52,55,54,102,56,52,100,49,101,51,52,55,49,56,55,98,50,52,52,57]
list=''
for i in range(0,37):
    a=chr(str[i])
    list=list+a
print(list)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值