首页
论坛
课程
招聘
雪    币: 9056
活跃值: 活跃值 (357)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝

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

2020-2-19 21:44 3159

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

2020-2-19 21:44
3159
这是两道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脚本好用(真香!!!)

HWS计划·2020安全精英夏令营来了!我们在华为松山湖欧洲小镇等你

上传的附件:
最新回复 (1)
雪    币: 2112
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_xghoecki 活跃值 2020-2-23 13:19
2
1
感谢分享
游客
登录 | 注册 方可回帖
返回