攻防世界——Misc新手练习区解题总结<3>(9-10题)
第九题SimpleRAR:

下载附件后得到一个压缩包打开后得到如下提示

文件头损坏,让我们打开winhex看一下

7a为子块而文件头为74,这里将7a改为74(这里我也不是很清楚,详细大家可以自行去查一下rar文件格式分析,等我搞明白会再给补上的)
改完后我们就能打开了

观察一下我们刚得到的图片,并没有发现什么奇怪的地方,也扔进winhex里看一下

看到此图片应为gif,改完后缀,后看题目有写着双图层,打开ps一看确实是有两个图层,这里用ps将两个图层分离(这里遇到很多问题,这道题有很多方法,可以用ps以及Stegsolve里的frame browser分离图层,但我前面两种方法都失败了,最后我用gif分离软件分离了图层,以后搞明白以后会进行补充)

分离出来两张空白图片
我们用Stegsolve将两个图片降低色域(软件下面的小箭头),得到以下来两张图片

再继续用Stegsolve将两张图片拼接(image combiner)

最后再用ps给二维码p上定位点扫描得到flag

第十题base64stego:

下载附件 得到一个压缩包,打开

得到一个stego.txt文件,打开得到如下界面

得到这么长一段base64的字符串,明显并不可能是直接的base64解码,那么应该就是base64隐写了
关于base64隐写:
先复习一下base64加密
众所周知一段字符串进行base64加密时,我们需要将每个字符串化为八位二进制数,并将所得的二进制字符串六位六位地分解,组合成新的字符串。
而六位六位分解后,不太可能每次都可以被正好分解,这时候就需要我们来加0来补位(这也就是我们base64加密后看到的=),补成既能被8整除(计算机中最小单位为字节,也就是8位二进制数,不能出现不为8位的情况)也能被6整除的个数(也就是加上8*n个0,结果是n为1,2)。
而(i为字节数)i*8%6有三种情况。余0的时候就是不用补位的情况,余2的时候我们需要补上16位0,前4位的0和刚刚剩下的两位正好组成一个六位,剩下两个六位正好组成两个等号,而余4的时候,只需加上8位0就可以了。只是说可能并不理解,这里举几个例子。

好说完base64加密的原理,我们来说一下
base64隐写的原理
我们来看看上面的第二个例子
第二个例子

没有标注的部分我们在解码(解码相当于加密的逆过程)的时候会将其丢掉,这样的话我们将0000,改成其他的数并不影响原先的密文,影响的只是加密后这个相应的字母会变化,但不会影响原先的密文。而如果改掉黄色标记部分的数字,如果改掉前面的数字就会改变密文,改掉后面的我们就会改变=的数量,从而影响解码,因此这里我们就可以改变未标注部分来隐藏一些信息,这样的话像第一个例子那种类型便不能隐写了。由于能隐藏的二进制数位最多为4位,所以我们需要许多句base64加密的密文来隐藏真正的信息,正如我们开始的时候看到的stego.txt一样,明白了这样的原理,我们可以用python写一个脚本来进行解密
# -*- coding: cp936 -*-
import base64
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('stego.txt', 'rb') as f:
bin_str = ''
for line in f.readlines():
stegb64 = str(line, "utf-8").strip("\n")
rowb64 = str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")
offset = abs(b64chars.index(stegb64.replace('=','')[-1])-b64chars.index(rowb64.replace('=','')[-1]))
equalnum = stegb64.count('=')
if equalnum:
bin_str += bin(offset)[2:].zfill(equalnum * 2)
print (''.join([chr(int(bin_str[i:i + 8], 2)) for i in range(0, len(bin_str), 8)]))
解密得到flag

未完待续……
ps:本人新手一枚,写的题解呢也是以新人的口吻写的所以有许多地方不够专业,也可能还有许多错误,也请各位大佬多多包容,也欢迎各位大佬的指导。
攻防世界——Misc新手练习区解题总结<3>(9-10题)的更多相关文章
- 攻防世界——Misc新手练习区解题总结<2>(5-8题)
第五题gif: 下载附件后,解压得到这样一个文件 几经寻找无果后,发现是不是可以将gif中的黑白图片看做二进制的数字,进而进行解密 最后用二进制转文本得到flag 第六题掀桌子: 看起来是16进制的密 ...
- 攻防世界——Misc新手练习区解题总结<1>(1-4题)
第一题this_if_flag: 第一题就不多说了,题目上就给出了flag复制粘贴就可以了 第二题pdf: 下载附件后,得到如下界面 Ctrl+a全选文字,复制出来看看是什么,粘贴后恰好得到flag ...
- 攻防世界——web新手练习区解题记录<1>(1-4题)
web新手练习区一至四题 第一题view_source: 题目说右键不管用了,我们先获取在线场景来看一看,我们看到这样一个网页,并且右键确实点了没什么反应,而用到右键一般就是查看网页源码 用快捷键(F ...
- 攻防世界——web新手练习区解题总结<3>(9-12题)
第九题simple_php: 看题目说是php代码,那必定要用到php的知识,让我们先获取在线场景,得到如下网页 仔细看这个代码,意思大概是: 1.当a==0且a为真时输出flag1 2.当b为数字退 ...
- 攻防世界——web新手练习区解题总结<2>(5-8题)
第五题cookie: 所需工具:burpsuite(需自行下载) 老规矩看完题,先获取在线场景,得到如下网页 那么什么是cookie呢?大体上就是网站为了识别用户身份而储存在用户本地终端上的数据,类型 ...
- 攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup
攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup 题目介绍 题目考点 隐写术 摩斯密码 Writeup 下载附件是PDF文件打开,研究一 ...
- 攻防世界 Misc 新手练习区 ext3 bugku Writeup
攻防世界 Misc 新手练习区 ext3 bugku Writeup 题目介绍 题目考点 WinHex工具的使用 linux磁盘挂载mount命令 Writeup 下载附件拖进winhex分析一下,查 ...
- 攻防世界 Misc 新手练习区 gif Writeup
攻防世界 Misc 新手练习区 gif Writeup 题目介绍 题目考点 仔细联想 字符转换 Writeup 下载附件并打开 104张黑白图 发现是一堆黑色和白色的图片,按某种规律排列,猜想flag ...
- 攻防世界 Misc 新手练习区 坚持60s Writeup
攻防世界 Misc 新手练习区 坚持60s Writeup 题目介绍 题目考点 java反编译 jd-gui 的使用 Writeup 下载附件并打开 kali执行命令 java -jar 9dc125 ...
随机推荐
- Linux的VMWare中Centos7的安装
Windows平台下VMWare 14安装Centos 7 一.虚拟机硬件配置 1.选择创建新的虚拟机: 2.选择自定义(高级)进行自定义配置,单击下一步: 3.选择虚拟机硬件兼容性为默认,单击下一步 ...
- SpringSceurity(6)---JWT详解
SpringSceurity(6)---JWT详解 在JWT之前我们在做用户认证的时候,基本上会考虑session 和 token,所以在讲jwt之前,我们先来回顾下这个两个 一.传统的session ...
- 【NOIP2013】火柴排队 题解(贪心+归并排序)
前言:一道水题. ----------------------- 题目链接 题目大意:给出数列$a_i$和$b_i$,问使$\sum_{i=1}^n (a_i-b_i)^2$最小的最少操作次数. 首先 ...
- 铁大树洞APP视频讲解和原型演示
首先放上我们团队视频讲解演示的视频:https://v.youku.com/v_show/id_XNDYyMzA3MTgzNg==.html 团队名称:超能陆战队 团队成员:刘梦鑫(队长) 段行行 徐 ...
- 牛逼了,利用Python实现“天眼系统”,只要照片就能了解个人信息
- 利用Unity3D制作简易2D计算器
利用Unity3D制作简易2D计算器 标签(空格分隔): uiniy3D 1. 操作流程 在unity3DD中创建一个新项目 注意选择是2D的(因为默认3D) 在Assets框右键新建C#脚本 在新建 ...
- Mybatis 和 Solon 勾搭在一起,也是个漂亮组合
故事相关的源码 https://gitee.com/noear/solon_demo/tree/master/demo08.solon_mybatis 故事开讲 Solon 是Java世界里一个新的极 ...
- 没有Qt Quick UI,没有 Qt Quick Project
书上写的是File ‣ New File or Project ‣ Qt Quick Project ‣ Qt Quick UI 但实际上是File ‣ New File or Project ‣ O ...
- Python 读取word中表格数据、读取word修改并保存、替换word中词汇、读取word中每段内容,读取一段话中相同样式内容,理解Document中run
from docx import Document path = r'D:\pywork\12' # word信息表所在文件夹 w = Document(path + '/' + 'word信息表.d ...
- 不安装证书如何通过模拟器+Fiddler抓包APP的HTTPS请求?
模拟器抓取https方法 说明:为了解决安卓手线上不能抓取https请求,以下整理通过模拟器抓取https请求方法如下:前置条件:安卓模拟器:夜神抓包工具:Fiddler汉化中文升级版1无需FIDDL ...