题目七
打开后发现两张图片
用百度识图第一张,发现是共济会的钥匙解密,搜索共济会密码
发现是猪圈密码,搜索共济会密码知识,发现图片的上下两部分被互换了,利用截图互换回来,
对照猪圈密码表,得到BXPKBBSSEM,加上flag{},提交!
题目八
题目缺失,跳过
题目九
打开后有一个php文件
分析加密过程,首先输入一个需要加密字符串$cryptedstr = "";
初始化一个空字符串,用于存储加密后的字符串srand(3284724);
使用固定的种子 3284724
初始化随机数生成器。这确保了每次执行时随机数序列相同,从而使得加密过程是可重复的for ($i = 0; $i < strlen($str); $i++)
循环遍历输入字符串的每一个字符。ord(substr($str, $i, 1))
获取当前字符的ASCII值。rand(0, 255)
生成一个0到255之间的随机数ord(substr($str, $i, 1)) ^ rand(0, 255)
使用随机数和字符的ASCII值进行按位异或运算while (strlen($temp) < 3)
确保异或结果的长度至少为3位,不足则前面补零$cryptedstr .= $temp . "";
将处理后的字符串片段添加到结果字符串中。return base64_encode($cryptedstr);
使用Base64编码将加密后的字符串进行编码,并返回。
写出对应的解密代码
<?php
function decrypt($str)
{
srand(3284724);
if(preg_match('%^[a-zA-Z0-9/+]*={0,2}$%',$str))
{
$str = base64_decode($str);
if ($str != "" && $str != null && $str != false)
{
$decStr = "";
for ($i=0; $i < strlen($str); $i+=3)
{
$array[$i/3] = substr($str,$i,3);
}
foreach($array as $s)
{
$a = $s ^ rand(0, 255);
$decStr .= chr($a);
}
return $decStr;
}
return false;
}
return false;
}
echo decrypt("MDEzMjE5MDAyMTg0MTUzMjQwMTQ0MDc3MjUzMDk2MTc1MTUzMTE4MTg4MDEwMDA2MTg4MDA0MjM4MDI1MTA3MTU4");
?>
在Linux系统下运行,得到flag{}
题目十
打开是一个wireshark数据包,使用http.request.method==POST筛选
将筛选出来的文件,保存下来
打开发现文件无法打开,将扩展名改为zip进行解压
伪加密
通过伪加密得到4个文件,打开发现是十六进制,用WinHex另存为png,扫描后得到flag
题目十一——你知道他是谁吗
打开发现一张图片,识图后发现是托马斯杰斐逊,使用工具扫描
将其导出,用记事本打开
按照密钥方式排列,再以密文以左的字符串移到最右,然后以第十四个字符为界
得到flag
题目十二——图片正确吗
打开是一张图片
使用WinHex查看,发现ipone 5# 4
图片分辨率为3264X1681,ipone后置摄像头为3264X2448,很明显修改了高度,使用WinHex修改高度,再次打开图片发现flag
题目十三
题目描述:密码是十位大小写字母、数字、特殊符号组成的,你爆破的开么?!
打开发现一个压缩包和一个txt文档,发现压缩包中tips.txt的CRC32值与外面的那个相同,因此直接进行明文爆破,爆破完成后得到flag{}