前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Writeup-2020安洵杯-Misc题:一封情书

Writeup-2020安洵杯-Misc题:一封情书

作者头像
Y5neKO
发布2022-01-13 12:58:20
4040
发布2022-01-13 12:58:20
举报
文章被收录于专栏:Y5neKO博客

谁以后要是给我这样的情书我特么打死谁,虽说不太可能收到。。。

题目描述:6岁的小明给6岁的姐姐写了一封情书

附件下载

打开压缩包得到一个文本

经统计有9409个字符,开方得到97,可以看出97×97的规律,将1视为黑块,0视为白块转为图片可以得到二维码

至于转二维码我看网上基本都是python代码,这里给一个用js实现的(PS:因为算法的原因有一列色块位置生成错误,我也就懒得改了,可以通过打开浏览器开发者工具把那一列挤过去),代码:

代码语言:javascript
复制
<html>
    <head>
        <style>
        *{
        padding: 0;
        margin: 0;
        }
        .a{
        width: 1px;
        height: 1px;
        background: #000;
        float: left;
        }
        .a{
        width: 1px;
        height: 1px;
        background: #000;
        float: left;
        }
        .b{
        width: 1px;
        height: 1px;
        background: #fff;
        float: left;
        }
        .c{
        width: 1px;
        height: 1px;
        background: #000;
        }
        .d{
        width: 1px;
        height: 1px;
        background: #fff;
        }
        </style>
    </head>
    <body>
        <center>
            <script type="text/javascript">
                var a = "二进制代码";
                document.write(a.length + "</br>");
                for (var o = 0; o < a.length; o++) {
                    if (a[o] == 0) {
                        if ((o + 1) % 97 == 0) {
                            document.write("<div class='d'></div>");
                        } else {
                            document.write("<div class='b'></div>");
                        }
                    } else {
                        if ((o + 1) % 97 == 0) {
                            document.write("<div class='c'></div>");
                        } else {
                            document.write("<div class='a'></div>");
                        }
                    }
                }
            </script>
        </center>
    </body>
</html>

生成的二维码解码得到

代码语言:javascript
复制
OTctMyAxLTMgMS0zIDMtMiAzLTIgMy0yIDEtMiAxLTUgMS0yIDEtMyAzLTIgOTctMyAzLTIgOTQtMSAxLTUgNC0yIDQtMiA0LTIgNC0yIDk3LTMgMS0zIDMtMiA0LTIgMS01IDMtMiA0LTIgMy0yIDMtMiAzLTIgNC0yIDk3LTMgMy0yIDEtNSAxLTUgMy0yIDEtMyA0LTIgNC0yIDEtMiAzLTIgMS0zIDQtMiA0LTIgNC0yIDMtMiA5NC0xIDEtMyAxLTMgMS0zIDMtMiA\zLTIgMS0zIDk0LTEgMS0zIDk0LTEgNC0yIDMtMiAxLTIgOTctMyA5Ny0zIDEtMw=

经观察为Base64,注意中间的反斜杠是误导,删除后Base64解码得到:

代码语言:javascript
复制
97-3 1-3 1-3 3-2 3-2 3-2 1-2 1-5 1-2 1-3 3-2 97-3 3-2 94-1 1-5 4-2 4-2 4-2 4-2 97-3 1-3 3-2 4-2 1-5 3-2 4-2 3-2 3-2 3-2 4-2 97-3 3-2 1-5 1-5 3-2 1-3 4-2 4-2 1-2 3-2 1-3 4-2 4-2 4-2 3-2 94-1 1-3 1-3 1-3 3-2 3-2 1-3 94-1 1-3 94-1 4-2 3-2 1-2 97-3 97-3 1-3

通过上面的坐标提取二维码上的色块值为:

代码语言:javascript
复制
1110001111010110000110010000001011010010100001111001111001111

按照题目的暗示6×6将二进制转为三十六进制

得到最终flag:

代码语言:javascript
复制
flag{j5w2a0o0}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年09月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档