分析:

这是一道杂项类PNG隐写题,在PNG里隐藏了zlib压缩数据。

比赛时解到解压zlib对8346开头的字符串一筹莫展。赛后经群内大佬点化,茅塞顿开,遂复现如下:

复现:

题目附件是一张PNG图片:

丢到tweakpng里检测一下,发现两个报错:



分析发现三个IDAT块是没问题的,但是多出了一个无法识别的DATx块,而且没有识别出结尾块IEND,放进Winhex里查看也证实了这一点。

在Winhex中看出文件尾是不完整的,正常的文件尾应该是 0000 49454E44 AE426082

结合之前tweakpng里的报错:Incorrect crc for DATx chunk (is 9c4e1c00,should be 886b1f6d),即DATx块的CRC校验码不正确,断定DATx中存在大问题。

(PS:注意一下这里tweakpng提示的CRC校验码不正确是因为DATx里藏了zlib把结尾的CRC校验码覆盖了,不要试着改回去,不然就把路走窄了,别问我怎么知道的!)

binwalk跑一下发现存在zlib:

在DATx块开头的地方也找到了zlib的文件头:

(这里选zlib一直选到文件尾也是可以的,解出来的字符串是一样的)

右键->Edit->CopyBlock->HexValues把16进制数值复制出来用Python脚本解压缩:


import zlib
import binascii#Winhex提取的十六进制zlib数据
data ="789C558EC111C02008049B72AE012736660DDBAF0449800FC7B8B0B89724E65E0259005EDFDE48441BD01CCFF0878BB958B1C38FA9F4532555091F2269C8BABAFEAD6B9B843C6EE000679C4E1C00"#默认将十六进制作为字符串解码,会出现错误,要将十六进制转换成字节码
data1 = bytes.fromhex(data)#十六进制转字节码
#print(data1)data2 = zlib.decompress(data1)#zlib解压字节码
#print(data2)data3 = binascii.hexlify(data2)#字节码转十六进制
print(data3)

跑出来一串纯数字的字符串:
b’834636363695438346369595364383469595954383469595364383463636363643834636363695438346369595364383469595364334453443834636953636438346369536954383463636953643834636369543344534438346369595438346369536954383463636363643834636363643344534438346369595364383463695953643834636369543834695363643344534438346363695364383463695369543834636369536438346369595954383469595364383469536954383463636363643834636953643834636369543834695369543834636959543834636369536’

每两位作一个十进制数,将字符串转为Ascii码(此处经大佬点化)

Python脚本每两位加空格:


import redata = "834636363695438346369595364383469595954383469595364383463636363643834636363695438346369595364383469595364334453443834636953636438346369536954383463636953643834636369543344534438346369595438346369536954383463636363643834636363643344534438346369595364383463695953643834636369543834695363643344534438346363695364383463695369543834636369536438346369595954383469595364383469536954383463636363643834636953643834636369543834695369543834636959543834636369536"
data_list = re.findall(".{2}",data)
data1 = " ".join(data_list)print(data1)

十进制转Ascii码+删除空格:(http://www.ab126.com/goju/1711.html)

转换后:

将S转为$:


str = 'S.$$$_+S.$__$+S.___+S.__$+S.$$$$+S.$$$_+S.$__$+S.__$+"-"+S.$_$$+S.$_$_+S.$$_$+S.$$_+"-"+S.$__+S.$_$_+S.$$$$+S.$$$+"-"+S.$__$+S.$__$+S.$$_+S._$$+"-"+S.$$_$+S.$_$_+S.$$_$+S.$___+S.__$+S._$_+S.$$$$+S.$_$+S.$$_+S._$_+S.$__+S.$$_$';str1 = str.replace('S', '$');print(str1)

转换后:

得到一串JJEncod码。
这里贴一点我对JJEncode的理解:
先看别处拿来的解释:

再看群内大佬的提示:

亲自尝试后发现这个JJEncode加密之后有一个外壳(就是你加密的JavaScript的代码,这里是alert("");)
(http://www.atoolbox.net/Tool.php?Id=704)

综上,解出来的JJEncode是里面那一串(相当于555),所以构造一个外壳之后是这样的:

注意不要少了与壳连接的+号,不然会报错无法运行。

放到浏览器控制台跑一下:


得到flag为flag{e901fe91-bad6-4af7-9963-dad812f5624d}

参考资料

PNG文件IDAT块隐写:
https://www.cnblogs.com/loo5mity/p/9537911.html
https://blog.csdn.net/qq_29647709/article/details/81876374
Python脚本对zlib的压缩解压详解和一些例子:
https://blog.csdn.net/qq_40574571/article/details/80164981

完结撒花!

2020上海大学生网络安全赛MISC可乐加冰相关推荐

  1. “东华春秋杯”上海大学生网络安全技能大赛决赛收官 聚焦高校人才培养

    11月21日, 由上海市教育委员会.上海计算机开放系统协会指导,东华大学主办,北京永信至诚科技有限公司协办,阅文集团.上海盛大网络发展有限公司.上海勋立信息科技有限公司.上海犇众信息技术有限公司支持的 ...

  2. 2020上海ICPC现场赛 C Sum of Log

    https://ac.nowcoder.com/acm/contest/9925/C 今天我们队配合问题极大...这道前期数位DP给数学队友在看他半天不会写,然后我这个数学辣鸡wa了一年D...交换一 ...

  3. 第三届上海大学生网络安全大赛 - 登机牌WP

    登机牌 先修复上面的二维码 中间的可不要进行修复,不妨碍 ,你可以去看看自己微信的二维码是不是中间有头像也能扫出来? 扯多了..... 扫描出来,提示进行分离,可以看到里面有两个文件 直接将图片丢尽0 ...

  4. 2020祥云杯网络安全大赛 MISC Writeup

    文章目录 签到 进制反转 到点了 xixixi 带音乐家 Charles Sensor 签到 PS C:\Users\Administrator> php -r "var_dump(b ...

  5. 第六届上海市大学生网络安全大赛 | Wp

    文章目录 MISC 0x00:签到 0x01:pcap 0x02:pcap analysis 0x03: 可乐加冰 Web 0x01:千毒网盘 MISC 0x00:签到 linux运行一下即可得到fl ...

  6. 2020上海高校程序设计竞赛暨第18届上海大学程序设计联赛夏季赛(同步赛) B-分子

    2020上海高校程序设计竞赛暨第18届上海大学程序设计联赛夏季赛(同步赛) B-分子 题目描述: 在遥远的斯卡布罗集市,有机分子只能由 C, H, O 三种元素组成.根据珂学家们的探测,一个 C 原子 ...

  7. 攻防比赛_2020年度泉州市大学生网络安全攻防比赛在黎明职业大学圆满落幕

    10月16日下午,作为2020年国家网络安全宣传周泉州市系列活动之一,"泉州市大学生网络安全攻防比赛"在黎明职业大学智慧教学中心成功举办并圆满落幕.此次比赛由泉州市互联网信息办公室 ...

  8. [ CTF ]【天格】战队WriteUp-第六届”蓝帽杯“全国大学生网络安全技能大赛(半决赛)

    第六届"蓝帽杯"全国大学生网络安全技能大赛(半决赛)电子取证赛题 第六届"蓝帽杯"全国大学生网络安全技能大赛(半决赛)其他赛题 [Misc]加密的通道 1.经过 ...

  9. 2020中国大学生喜爱雇主榜单揭晓;宜家中国携手新裤子乐队发布合作单曲 | 美通企业日报...

    今日看点 前程无忧揭晓2020中国大学生喜爱雇主,112家领先企业当选.当选的112家2020中国大学生喜爱雇主中,43.7%的企业成立于千禧年以后,民营企业.国有企业和跨国公司分别有28家.28家和 ...

  10. 长安“战疫”网络安全赛-wp

    长安"战疫"网络安全赛-wp Web tp shiro? Baby_Upload flag配送中心 flask RCE_No_Para Crypto no_can_no_bb ma ...

最新文章

  1. Mac 上 iterm2 和 VSCode 终端中的字体设置建议
  2. 快速查看linux命令的用法----------TLDR
  3. 什么叫取反_转载:CodeReview正确的姿势是什么?
  4. linux数据流重定向
  5. 单点登陆框架CAS的研究
  6. Ubuntu 16.04安装Memcached(单机)
  7. es6 Reflect对象简介
  8. 369Cloud控制台、IDE、组件、引擎升级全面解析
  9. 烂泥:apache虚拟主机的学习与应用
  10. 最全H桥电机驱动模块L298N原理及应用
  11. 家用宽带优化-光猫桥接,路由器拨号
  12. 计算机组成 vhdl cpu 实验 西安交大,基于FPGA的VHDL计算机组成实验平台的设计与实现...
  13. TGA--数据压缩第二次作业
  14. oracle导入索引b报错,数据迁移:oracle数据库表结构导出exp、导入imp
  15. 不同的国家,珠峰的高度为啥不一样?
  16. Oracle建库建表
  17. 吴恩达深度学习编程作业报错解决方法汇总
  18. 渐开线花键齿轮与渐开线圆柱齿轮
  19. UnityShader-LowPoly
  20. java Compiler API (java编译api)

热门文章

  1. 用python根据年份判断生肖_C#中根据年份判断十二生肖
  2. 任强-京东智能云服务平台
  3. alot英文怎么读_alot...of是什么意思
  4. 《单片机原理及应用(魏洪磊)》第七章第9题
  5. 记一次菜鸟网络电话面试
  6. 阿里云ECS服务器很多台共用一个公网ip吗?
  7. Redis Cluster集群原理+三主三从交叉复制实战+故障切换(十)
  8. C++求一个数的最大奇数约数
  9. latex特殊字体咋打?+下标打在左边
  10. 国外优秀免费空间不完全名单