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

 签到

载入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

扫描二维码关注公众号,回复: 7778749 查看本文章

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

压缩包的秘密

    拿到一个压缩包但是打不开,用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

猜你喜欢

转载自www.cnblogs.com/yichen115/p/11815085.html