2019"深思杯"山东省大学生网络安全技能大赛部分wp

2023-06-12,,

签到

载入OD查看字符串

上下左右

这道题出来的时候真的是一点思路都没有,一直以为是什么编码来着,看了大佬们的 wp 原来是画图

拿大佬的脚本:

from PIL import Image
im = Image.new('RGB',(1000,1000),'black')
#把flag中的字母读出来
file = open('flag.txt')
line = file.readline()
a = [300,300] #起始位置
#把flag[0]当做左右移动 flag[1]当做上下移动
for i in line:
if i == 'D':
a[1] = a[1]+1
if i == 'U':
a[1] = a[1]-1
if i == 'R':
a[0] = a[0]+1
if i == 'L':
a[0] = a[0]-1
im.putpixel(a ,(255,255,255)) ## putpixel是通过坐标点来进行画图
##刚开始是按照惯例 让i == 'u' +1 画出来是个倒立的图形 所以只能让 ‘D'+1
im.show()

来自这里:
https://blog.csdn.net/qq_43559371/article/details/102907525

话说这么抽象,我估计当时就算我写出来了也要试很多遍

压缩包的秘密

拿到一个压缩包但是打不开,用winhex看了一下文件头反了,就改了文件头,又试了试还是打不开。

发现有些东西,比如:flag.txt 也是乱序的,也把他们反过来了,结果试了试还是不行,突然想到,不会是全都反过来吧!?因为不会写脚本手动一点一点改完了,试了试打开了

同时反转后末尾是BASE64:there-is-half-pwd-shensi

全选压缩包注释,看了一下好像是摩斯密码

放在 sublime 里面(后面应该是加上那一个空格的)

转一下:THERE-IS-HALF-PWD-SDNISC

当时两部分密码怎么拼都提示密码错误,试了各种拼法都不行。结果昨天一看是我两两互换的时候有一个地方写反了,压缩包可以正常打开但是密码验证不通过

在找 wp 的时候还发现一种压缩包密码破解方式:掩码攻击,这样在知道一部分的时候可以减少工作量

https://blog.csdn.net/weixin_43211186/article/details/102943733

ps. 复现的时候还发现一个更快捷的反转方法:

特别方便(菜鸡写不了脚本只能用这种办法了)

啾咪

用 Stegsolve 分析,在下面这张图的设置的时候发现 flag(之前查看通道的时候顶部有些像摩斯密码的东西,但是没去试,也不知道能不能做出来)

Base64 解码得到 flag

我和我的祖国

用 Audacity 打开,放大以后看到结尾一段是这样的

把上面的点作为 1,下面的点作为 0,保存出来如下:

0110011001101100011000010110011101111011011001100110010100111000011001100110010000110100001101100011100000110010001100000011010100110001001100110110001000110101001101000110001101100100011001000011010100111001011000100011000000110100001110000011010100110111001100010011100101100110001110010011010001111101

ps. 看山科大师傅们解法是:

winhex 最下面的数据如下,比赛的时候看到过,但是没有想过去替换成 0 1 的形式

你真的很不错

当时这个解压出来是个视频,我还以为又要用 pr 一帧一帧的看,然而太长了,看了一分多钟放弃了,事实证明也确实不是

特别服气自己,当时好像都放出提示用 winrar 解压了,竟然没有想到 ntfs 数据流隐写,看到 wp 那一刻,我都自闭了!!

用 winrar 解压给的压缩包,然后直接扫描所在的文件夹

就可以看到 flag.png 了,然后直接导出查看就可以

简单密码学

当时看到以后想到是培根密码,但是把小写换成 A,大写换成 B 以后,用了两个工具解出来的都不是,后来比赛结束跟队友交流发现米斯特的工具可以正常解出来

被加密的消息

本来如果是普通的 AES 加密还能用收藏的脚本解出来,但是有个 dp?没见过啊!!

然而,看了师傅们的 wp 好像是个很常规的题目,啊!?无所谓了,密码学的题本就没接触过几道

web 铜牌:简单的 web

查看源代码(好像是来)发现提示:另一种方式(没有截图)

使用 Post 传参 id=1得到弹窗提示 351358435354354.php,访问 351358435354354.php 提示:请使用唯一指定浏览器(sdnisc)

改请求头

访问得到源代码:

<?php
include('flag.php');//key & flag
if (strstr($_SERVER["HTTP_USER_AGENT"],'sdnisc')){
if (isset($_POST['message'])) {
$message = json_decode($_POST['message']);
if ($message->key == $key && md5($message->md5) == $message->key) {
echo $flag;
}
else{
echo "~~~~";
}
}
highlight_file(__FILE__);
}
else{
echo "请使用唯一指定浏览器(sdnisc)";
}
?>

首先是 json_decode() ,所以要发 encode 的,看到 == ,尝试了一下弱类型传参 message={"key":0,"md5":0}

附见过的几篇 wp:

https://mp.weixin.qq.com/s/c30nvWLOkO9vioCcp5vagg
https://mp.weixin.qq.com/s/CvBu9_jQIrTHdUF7me3YGg
https://blog.csdn.net/qq_43559371/article/details/102907525
https://blog.csdn.net/weixin_43211186/article/details/102943733
https://blog.csdn.net/missmengjin/article/details/102876933

2019"深思杯"山东省大学生网络安全技能大赛部分wp的相关教程结束。

《2019"深思杯"山东省大学生网络安全技能大赛部分wp.doc》

下载本文的Word格式文档,以方便收藏与打印。