SarCTF:超无聊但是很考验基础的两道MISC
2020-02-25 17:20:48 Author: bbs.pediy.com(查看原文) 阅读量:290 收藏

[原创]SarCTF:超无聊但是很考验基础的两道MISC

5天前 410

[原创]SarCTF:超无聊但是很考验基础的两道MISC

这是两道MISC题,要想解题需要一些脚本基础,第一题如下:

这是个tar的压缩文件,实际上当你手动解压后会发现这是一个被压缩了很多次的压缩文件,主要用到的格式有:zip,bz2,tar,gz,xz,并且没有密码;既然是循环压缩,就可以用shell脚本(其实是我没找到Python的脚本或者说我不会写。。。)

 #!/bin/bash
target="flag.txt"
while(true)
do 
    type=$(file $target)
    if [[ "$type" == *"POSIX tar archive"*  ]];
    then
        mv $target flag.tar
        tar -xvf flag.tar
        rm flag.tar
    fi
    if [[ "$type" == *"Zip"* ]];
    then
        mv $target flag.zip
        unzip flag.zip
        rm flag.zip
    fi
    if [[ "$type" == *"bzip2"* ]];
    then
        mv $target flag.bz2
        bzip2 -dk flag.bz2
        rm flag.bz2
        mv flag.txt.out flag.txt
        mv flag flag.txt
    fi
    if [[ "$type" == *"gzip compressed data"* ]];
    then
        mv $target flag.gz
        gunzip -d flag.gz
        rm flag.gz
        mv flag* flag.txt
    fi
    if [[ "$type" == *"XZ"* ]];
    then
        mv $target flag.xz
        tar -xf flag.xz
        rm flag.xz
    fi
    if [[ "$type" == *"ASCII"* ]];
    then
        echo $type
        break
    fi
done

第二题的不同之处在于只用了zip但是需要解压密码,密码就是文件名

这个同样也是被迭代压缩了很多次,解法同样也是shell脚本(因为没找到Python解压带密码的zip的方法。。。)

!#/bin/bash
for i in {1..100}
do
    f=`ls -u|head -1`;
    unzip -P $f $f;
done

小结:

本来傻傻的以为靠毅力终有一天能解压出flag的,于是手工解压了四十多分钟。。。果然还是shell脚本好用(真香!!!)

[招生]科锐逆向工程师培训(3月6日远程教学班首开特惠, 第37期) !

上传的附件:
  • RWtm7A5f.zip (27.38kb,1次下载)
  • layouts.sh (0.08kb,1次下载)
  • flag.txt (250.00kb,1次下载)
  • deep dive.sh (0.91kb,1次下载)

文章来源: https://bbs.pediy.com/thread-257748.htm
如有侵权请联系:admin#unsafe.sh