美文网首页
程序员红包解析:自己家的

程序员红包解析:自己家的

作者: 吕世博 | 来源:发表于2016-02-08 15:27 被阅读257次

嗯,就是 Piedu 的首页隐藏红包。

当然不会直接藏在可视区域

我还在放出时提供了提示:

首页上,源码里,data,数字口令,登入登出下试试

嗯,直接上 source:

<!DOCTYPE html>
<html manifest="/app.manifest">
<head>
  <link rel="stylesheet" type="text/css" class="__meteor-css__" href="//7xlqm0.com1.z0.glb.clouddn.com/f61256753f1d56d96d479da859e121074e9cee53.css?meteor_css_resource=true">


<script type="text/inject-data">%7B%22uid%22%3A%22165580424%22%2C%22procedure%22%3A%22right*3%22%7D</script>
<script type="text/javascript">__meteor_runtime_config__ = JSON.parse(decodeURIComponent("%7B%22meteorRelease%22%3A%22METEOR%401.2.1%22%2C%22PUBLIC_SETTINGS%22%3A%7B%7D%2C%22ROOT_URL%22%3A%22http%3A%2F%2Fwww.piedu.net%22%2C%22ROOT_URL_PATH_PREFIX%22%3A%22%22%2C%22kadira%22%3A%7B%22appId%22%3A%229K6go88GehTjySsLJ%22%2C%22endpoint%22%3A%22https%3A%2F%2Fenginex.kadira.io%22%2C%22clientEngineSyncDelay%22%3A10000%2C%22enableErrorTracking%22%3Atrue%7D%2C%22autoupdateVersion%22%3A%22438df3656f54c798dd47217e2eea1232178e2d77%22%2C%22autoupdateVersionRefreshable%22%3A%2275ae11e34432bed3422ec0d03922523c73a334e8%22%2C%22autoupdateVersionCordova%22%3A%22none%22%2C%22accountsConfigCalled%22%3Atrue%7D"));</script>

  <script type="text/javascript" src="//7xlqm0.com1.z0.glb.clouddn.com/ba0204b7e27a7863151d2d8375fc208015d39952.js?meteor_js_resource=true"></script>



<meta name="fragment" content="!">
<title>πedu</title>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
    <meta content="width=device-width, initial-scale=1.0, user-scalable=no" name="viewport">
    <meta content="创新驱动改变。Piedu,盘度。" name="description">
    <meta content="Piedu, piedu, pi, edu, educating, educate, 教育, 圆周率, 教育技术, 创新, workflow, 工作流, 与人合作" name="keywords" />
    <link href='//fonts.css.network/css?family=Roboto:100,400,400italic' rel='stylesheet' type='text/css'>
    <link charset="utf-8" href="//cdn.css.net/libs/font-awesome/4.5.0/css/font-awesome.min.css" media="screen" rel="stylesheet">
    <script>
        (function(i, s, o, g, r, a, m)
        {
            i["DaoVoiceObject"] = r;
            i[r] = i[r] || function()
            {
                (i[r].q = i[r].q || []).push(arguments)
            }, i[r].l = 1 * new Date();
            a = s.createElement(o), m = s.getElementsByTagName(o)[0];
            a.async = 1;
            a.src = g;
            m.parentNode.insertBefore(a, m)
        })(window, document, "script", "//widget.daovoice.io/widget/50725cec.js", "daovoice");
    </script>
    <script>
        daovoice('init',
        {
            app_id: "50725cec"
        });
    </script>
</head>
<body>

    <script type="text/javascript" src="/loading/pw.min.js"></script>
    <script type="text/javascript">
      window.__loading_screen = window.pleaseWait({
        logo: '/loading/Piedu.svg',
        backgroundColor: '#009688',
        loadingHtml: '<div class="spinner"><div class="cube1"></div><div class="cube2"></div></div>'
      });
    </script>



</body>
</html>

看着有没有感觉疼呢……其实这是 Piedu 发来的初始 HTML。既然我让你们看 source 呢,不会涉及 DOM 后的 HTML。不管登入登出,刷新后的初始 HTML 都是一样的,于是可以排除各块的内容了:

  • CDN 的地址显然取决于 Qiniu,不存在藏红包的可能。
  • 随意改变 Meteor 的 Runtime Config 有可能造成程序不正常运行,就算是,唯一的几个数字是 Meteor 的版本号 1.2.1,查阅资料可得确实是最新的 Meteor 版本。
  • 文件名是文件的 hash,CDN 的要求,验证文件 hash 也可以确认这个 hash 正确,肯定不是藏红包位置。
  • DaoVoice 的配置代码,显然不可能进行改动。
  • 剩下还能够怀疑的只有 __loading_screen 了。backgroudColor 是一个取自 Material Design 色板的 Teal 500,不大像能藏红包的数字。

整个红包还能怀疑的,只有:

<script type="text/inject-data">%7B%22uid%22%3A%22165580424%22%2C%22procedure%22%3A%22right*3%22%7D</script>

解码这一段,可得一个 JSON:

{"uid":"165580424","procedure","right*3"}

uid 一般代指用户 ID,既然登入登出都一样,这个一定有蹊跷。165580424 显然不是红包的口令,我们看看 procedure 键。procedure 这个键名暗示了解开这段红包的过程,值是 right*3,似乎在暗示执行 right 这个操作 3 次。对于一个数,程序员们最熟悉的方向性的处理方法只有右移位。三次右移位的结果就是红包的口令了。

这个红包不见得有多难,只是大家都没有注意这个复杂 HTML 里的有些字段不符合常理。某同学在我 inject-data 的提示下解出了红包,但是没有领。这个红包我现在重发出来,但是藏在了 Piedu 上对应的那个创意板里,大家再动动脑筋?

传送门: http://www.piedu.net/ideas/Mnv65KJDLepASnMgY

相关文章

网友评论

      本文标题:程序员红包解析:自己家的

      本文链接:https://www.haomeiwen.com/subject/oxpykttx.html