少女祈祷中...

1024小关卡


本篇概述:菜鸟教程公众号在1024当天所发的一个 ” 程序员节闯关瓜分 1024 红包 “ 的活动。


1、文章页面展示

点击


2、逐个击破

1、打开网站 www.runoob.com 查找第一个字母 —— i

  • ctrl + U 打开源码没发现什么,也没什么明确提示
  • F12 打开调试工具,很明显看见个关键字 / console 页签也有打印

2、第二个字母 md5 加密 —— l

1
2
3
4
5
6
import string
import hashlib
for i in string.ascii_letters:
res = hashlib.md5(i.encode()).hexdigest()
if res == '2db95e8e1a9267b7a1188556b2013b33':
print(i)

3、第三个字母对应的ASCII为111 —— o

1
2
3
# chr() 查看ascii码对应的字符  
# chr(65) A
chr(111)

4、第四个字母在二维码中 —— v

扫描即可,v

盲猜,ilov erunoob,都是套路

5、第五个字母 —— e

RGB(238,238,238)

RGB颜色代码转十六进制 ——> 结果:#EEEEEE

网站: RGB颜色值与十六进制颜色码转换工具

6、第6-8个字母是个单词,图片的数字为二进制 —— r u n

01110010

01110101

01101110

1
2
3
4
5
6
7
8
9
10
11
12
int('01110010',2)
int('01110101',2)
int('01101110',2)
# 114 117 110
# ascii码
# 用chr()转换下

chr(114)
chr(117)
chr(110)

# r u n

7、第七个—— oo

图片里的是一段js代码,还有正则。

reg 的意思是:

(\w),匹配字母及下划线并分到一个捕获组里;

\1,是向后引用第二个捕获组并匹配和分到一个捕获组。( \0是第一个,也就是正则表达式 )

这段正则就是捕获字母或下划线重复的部分

1
2
3
4
5
6
7
import re

h = 'abcdefghijklmnoopqrstuvwxyz'
r = r'(\w)(\1)'
# js代码里的正则/g不知道啥意思
p = re.compile(r)
m = re.findall(p,h)

结果,m = [(‘o’, ‘o’)]

8、第八个字母 —— b

Yg==

等于号结尾,很明显是base家族编码

1
2
3
4
import base64

print(base64.b64decode(b'Yg=='))
# base32解码就是将b64decode变成b32decode,base16同理.

3、请求

以上得到是:iloverunoob;

拼接 http://test.runoob.com/runoob1024.php?key=iloverunoob

-------------本文结束感谢您的阅读-------------

本文标题:1024小关卡

文章作者:Coder-Sakura

发布时间:2019年10月24日 - 16:37:00

最后更新:2019年11月03日 - 21:20:01

原始链接:https://coder-sakura.github.io/blog/2019/10/24/1024/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。