嗯,就是 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 上对应的那个创意板里,大家再动动脑筋?
网友评论