misc刷题

  • lsb隐写
    • 引用一段百度内容
      • LSB隐写就是修改RGB颜色分量的最低二进制位也就是最低有效位(LSB),而人类的眼睛不会注意到这前后的变化,每个像数可以携带3比特的信息。能够使用lsb隐写的图片格式只能是png或bmp,jpg无法实现lsb隐写

    • 一般这种隐写可以使用stegsovle破解
  • TTL图片隐写
    • TTL是IP V4的一个8位报头,正常情况下我们拿到的数据包时一段无意义的数字,我们可以首先把这些数据转化为二进制,并且要转化为八位的二进制

    • 为什么要转化成8位二进制?因为TTL隐写最多一次就是八位,想想看是不是。

    •   with open('C:/Users/brighten/Desktop/attachment.txt', 'r') as f: for line in f: num=int(line) ss=bin(num) while len(ss)<10: ss=ss[:2]+'0'+ss[2:] print(ss)#把多个数据转化成八位的二进制 
    •  转换成为多个8位二进制数据后,会发现每个数据的后6位都是1,这也就是TTL隐写的秘密了。
    • 一个数据要实现TTL隐写就是把它转换成为一个8位二进制,然后按两位为一组,每组数据后面拼接6个1形成8位数据。比如
    • 44
      10=00101100
      2
      加密结果:


      00 111111

      10 111111

      11 111111

      00 111111

    • 所以可以先看看破解隐写后是什么数据类型
    • count = 0

      str=””

      with open(‘C:/Users/brighten/Desktop/attachment.txt’, ‘r’) as f:

          for line in f:

              num = int(line)

              ss = bin(num)

              while len(ss) < 10:

                  ss = ss[:2] + ‘0’ + ss[2:]

              #print(ss)

              str=str+ss[2:4]

              count += 1

              if count == 4:

                  count = 0

                  sum=0

                  #print(str)

                  for i in range(len(str)):

                      if str[i]==’1′:

                          sum=sum*2+1

                      else:

                          sum=sum*2

                  # print(sum)

                  print(chr(sum),end=””)

                  str=””

    •  

    • 鄙人认为难点是在于要判断ttl破解后的数据包是什么类型,像我这里破解出来的是504b说明是一个zip压缩包,那就可以接下来继续操作,把数据封装成一个zip然后打开即可

    • import binascii

      with open(‘D:/desktop/ctf题目/net.txt’,’r’) as fp:

          a=fp.readlines()

          p=[]

          for x in range(len(a)):

              p.append(int(a[x]))

          s=”

          for i in p:

              if(i==63):

                  b=’00’

              elif(i==127):

                  b=’01’

              elif(i==191):

                  b=’10’

              else:

                  b=’11’

              s+=b

      flag=”

      for i in range(0,len(s),8):

          flag+=chr(int(s[i:i+8],2))

      flag=binascii.unhexlify(flag)

      wp = open(‘D:/desktop/ctf题目/ttl_solve.zip’,’wb’)

      wp.write(flag)

      wp.close()

  • 认识到明文攻击
    •   引用自博主 https://blog.csdn.net/qq_52974719/article/details/117084427

    • 适合明文攻击的情况,得到了泄露的压缩包,还有一个加密的压缩包,且两个压缩包的CRC32相同

    • 这种情况直接用ARPR明文破解即可
  •  outguess解码格式(图片)
    •   outguess -k 密码 -r 图片 要输出的文件格式
  • 常见的文件分离指令
    • binwalk -e 文件(绝对路径,取决于自己的终端打开位置)
    • foremost -T 文件(绝对路径,取决于自己的终端打开位置)
  •  

     

© 版权声明
THE END
支持一下吧
点赞14 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容